Java 데이터베이스 연결

SQL의 기본 사항을 알고 있습니다. 좋습니다. 하지만 오늘은 기분이 훨씬 나아질 것입니다. 오늘부터 Java 애플리케이션에서 데이터베이스로 작업하는 방법을 배우기 시작합니다.

다양한 DBMS가 있으므로 Java 제작자는 Java 응용 프로그램이 데이터베이스와 작동하는 방식을 표준화하기로 결정했습니다. 그리고 그들은 이 표준을 JDBC : Java DataBase Connectivity 라고 불렀습니다 .

JDBC에는 3가지 주요 인터페이스가 있습니다.

  • 연결 - 데이터베이스 연결을 담당합니다.
  • - 데이터베이스 쿼리를 담당합니다.
  • ResultSet - 데이터베이스에 대한 쿼리 결과를 담당합니다.

사실 그게 다입니다. 그리고 우리는 모든 인터페이스의 모든 방법을 배우지도 않을 것입니다. 우리가 점차 복잡하게 만들 작업 예제만 있습니다.

JDBC는 서블릿 작업과 다소 유사합니다. JDBC의 제작자는 여러 인터페이스를 작성했으며 이를 자랑스럽게 Java DataBase API라고 부릅니다. 그리고 이러한 인터페이스의 구현은 ... DBMS 작성자에게 할당되었습니다. 그것이 구현되는 방식-아무도 신경 쓰지 않습니다. 잘 작동합니다.

JDBC에는 네 가지 버전이 있으며 최신 버전을 살펴보겠습니다. 그녀가 가장 멋져서가 아니라 가장 단순하기 때문입니다.

JDBC 드라이버 관리자

Java 애플리케이션과 데이터베이스는 JDBC 드라이버라는 라이브러리를 통해 서로 통신합니다. 이것은 특정 DBMS에 대한 JDBC API를 구현하는 클래스 세트입니다.

DriverManager 라는 클래스를 사용하여 올바른 JDBC 드라이버를 선택합니다 . 이들의 상호 작용은 다음과 같이 나타낼 수 있습니다.

문제는 In-Memory-DB, No-SQL-DB 또는 Android 앱에 내장된 데이터베이스를 사용할 수 있다는 것입니다. Java 개발자로서 이러한 뉘앙스는 전혀 관심이 없습니다. 드라이버 관리자는 올바른 JDBC 드라이버를 선택 하고 모든 것이 시계처럼 작동합니다.

그건 그렇고, 그는 어떻게합니까?

MySQL 서버에 연결

MySQL Workbench를 통해 로컬 SQL 서버에 연결하는 데 무엇이 필요했는지 기억하십니까? 내가 잊었다면 다음 세 가지가 필요하다는 것을 상기시켜드립니다.

  • 주인
  • 로그인
  • 비밀번호

로그인과 비밀번호로 모든 것이 명확하며 기억한다면 호스트는 서버가 위치한 컴퓨터의 이름입니다. 로컬 컴퓨터에 있는 경우 localhost를 호스트 이름으로 지정해야 합니다. 국산이 아니면?

그런 다음 ... URL을 사용해야 합니다. URL은 Universal Resource Locator를 나타냅니다 . 사이트, 프린터, SQL 서버 등 네트워크의 모든 위치를 지정하는 데 사용할 수 있습니다. 실제로 URL은 로컬 SQL 서버에 액세스하는 데에도 사용됩니다. 다음과 같이 보입니다.

mysql://localhost:3306/db_scheme
  • mysql 은 서버 프로토콜입니다.
  • localhost - 네트워크의 호스트 이름
  • 3306 - 요청이 이루어진 포트
  • db_scheme - 스키마 이름(데이터베이스 이름)

메모. 데이터베이스 이름은 생략할 수 있습니다. 그러나 서버가 많은 데이터베이스 스키마를 저장하는 경우 일반적으로 서로 다른 사용자와 서로 다른 액세스 권한이 생성됩니다. 그리고 SQL 서버에 로그인하는 사용자가 모든 데이터베이스에 액세스할 수 없는 경우 액세스 권한이 있는 특정 데이터베이스의 이름을 반드시 지정해야 합니다.

이 URL의 끝에는 설정 중인 새 데이터베이스 연결에 대한 매개변수로 간주되는 다양한 매개변수, 인코딩 유형, 시간대가 있을 수 있습니다.

또한 프로토콜은 복합적일 수 있습니다. 데이터베이스 서버와의 모든 통신이 SSH 프로토콜을 사용하는 암호화된 채널을 통해 이루어지는 경우 URL은 다음과 같이 지정할 수 있습니다.

ssh:mysql://localhost:3306/db_scheme

프로토콜이 반드시 외부 프로그램일 필요는 없습니다. 예를 들어 JNDI 프로토콜을 사용하는 서버로 작업하는 경우 다음과 같이 지정할 수 있습니다.

jndi:mysql://localhost:3306/db_scheme

JDBC API 프로토콜을 사용하여 작업하려면 다음과 같이 작성해야 합니다.

jdbc:mysql://localhost:3306/db_scheme

데이터베이스 연결을 만들려고 하면 JDBC 드라이버 관리자가 SQL-db-URL을 구문 분석하고 프로토콜 이름에서 JDBC 드라이버 이름을 결정합니다. 여기에 약간의 트릭이 있습니다.