JDBC 연결 데이터베이스
JDBC 연결 설정과 관련된 프로그래밍은 매우 간단합니다. 다음은 네 가지 간단한 단계입니다.
JDBC 패키지 가져 오기 :
가져 오기 명령문은 Java 컴파일러에게 코드의 참조를 찾을 수있는 위치를 알려주고 소스 코드의 시작 부분에 클래스를 배치합니다.
표준 JDBC 패키지를 사용하면 SQL 테이블에서 데이터를 선택, 삽입, 업데이트 및 삭제하여 소스 코드에 다음 가져 오기를 추가 할 수 있습니다.
Java.sql.*; // 표준 jdbc 프로그램의 경우 java.math.*; // bigdecimal 및 biginteger 지원
JDBC 드라이버 등록 :
사용하기 전에 프로그램에 운전자를 등록해야합니다. 등록 된 드라이버는 Oracle 드라이버의 클래스 파일이 메모리에로드되어 JDBC 인터페이스로 사용할 수있는 구현 프로세스입니다.
프로그램 에서이 등록을 한 번만 수행해야합니다. 운전자는 두 가지 방법 중 하나로 등록 할 수 있습니다.
메소드 (i) - class.forname () :
드라이버를 등록하는 데있어 가장 일반적인 방법은 Java의 class.forname () 메소드를 사용하여 드라이버 클래스 파일을 메모리에 동적으로로드하는 것입니다. 이 접근법은 운전자가 편리한 휴대 성을 위해 구성을 등록 할 수 있기 때문에 바람직합니다.
다음 예제는 class.forname ()을 사용하여 Oracle 드라이버를 등록합니다.
{class.forname ( "oracle.jdbc.driver.oracledriver");} catch (classNotFoundException ex) {System.out.println ( "오류 : 드라이버 클래스를로드 할 수 없음!"); System.exit (1);}GetInstance () 메소드를 사용하여 호환되지 않는 JVM을 해결할 수 있지만 두 가지 추가 예외가 다음과 같이 작성됩니다.
try {class.forname ( "oracle.jdbc.driver.oracledriver"). NewInstance ();} catch (classNotFoundException ex) {System.out.println ( "오류 : 드라이버 클래스를로드 할 수 없음!"); system.exit (1); catch (불법 행위 exception ex) {system.out.println ( "오류 :로드하는 동안 액세스 문제!"); system.exit (2); catch (InstantiationException ex) {System.out.println ( "오류 : 인스턴트 드라이버 할 수 없습니다!"); System.exit (3);} 메소드 (ii) - DriverManager.registerDriver () :
드라이버를 등록하는 데 사용하는 두 번째 방법은 staticDriverManager.registerdriver () 메소드를 사용하는 것입니다.
예를 들어 호환되지 않는 JDK JVM을 사용하는 경우 Microsoft는 registerDriver ()를 사용하는 메소드를 제공해야합니다.
다음 예제는 registerDriver ()를 사용하여 Oracle 드라이버를 등록합니다.
try {driver mydriver = new Oracle.jdbc.driver.oracledriver (); DriverManager.registerDriver (MyDriver);} Catch (ClassNotFoundException EX) {System.out.println ( "오류 : 드라이버 클래스를로드 할 수 없습니다!"); System.exit (1);} 데이터베이스 URL 공식화 :
드라이버를로드 할 때 DriverManager.getConnection () 메소드를 사용하여 프로그램에서 연결을 설정할 수 있습니다. 쉽게 참조하려면 과부하 된 DriverManager.getConnection () 메소드를 나열하겠습니다.
여기서 각 양식에는 데이터베이스 URL이 필요합니다. 데이터베이스의 URL은 데이터베이스 주소를 가리 킵니다.
데이터베이스 URL을 개발하는 것이 가장 일반적으로 연결을 설정하는 데 사용됩니다.
다음 표에는 인기있는 JDBC 드라이버 이름 및 데이터베이스 URL이 나와 있습니다.
RDBMSJDBC 드라이버 이름 URL 형식
mysql com.mysql.jdbc.driver jdbc : mysql : // hostname/databasenameoracle oracle.jdbc.driver.oracledriver jdbc : oracle : @hostname : port 번호 : databasenamedb2 com.ibm.db2.jdbc.net.db2db2db2dbc. 번호/databasenamesybase com.sybase.jdbc.sybdriver JDBC : Sybase : TDS : HostName : 포트 번호/DatabasEname
URL 형식의 모든 강조 표시된 부품은 정적이며 데이터베이스 설정에 따라 나머지 부품 만 변경하면됩니다.
연결 객체 작성 : 데이터베이스 URL의 사용자 이름과 비밀번호를 사용하십시오.
다음 세 가지 형식의 DriverManager.getConnection () 메소드는 연결 객체를 작성하는 데 사용됩니다. 가장 일반적인 형태의 getConnection ()은 데이터베이스 URL, 사용자 이름 및 비밀번호를 전달해야합니다.
URL 데이터베이스의 DatabaseName 값 : Oracle의 Thin Driver를 사용하고 있다고 가정하면 호스트를 지정해야합니다 : Port.
호스트 TCP/IP 주소 192.0.0.1이 있고 호스트 이름과 Oracle Listener가 포트 1521에서 구성되어 있고 데이터베이스 이름은 EMP이며 전체 데이터베이스 URL은 다음과 같습니다.
JDBC : Oracle : Thin : @amrood : 1521 : Emp
이제 아래와 같이 연결 객체를 얻으려면 적절한 사용자 이름과 비밀번호 및 getConnection () 메소드를 호출해야합니다.
String URL = "JDBC : Oracle : thin : @amrood : 1521 : emp"; String user = "username"; String pass = "password"connection conn = drivermanager.getConnection (url, user, pass);
하나의 데이터베이스 URL 만 사용하십시오.
DriverManager.getConnection () 메소드의 두 번째 형태는 데이터베이스 URL 만 필요합니다.
DriverManager.getConnection (문자열 URL);
그러나이 경우 사용자 이름 및 비밀번호를 포함한 데이터베이스의 URL은 다음과 같은 일반적인 형태를 갖습니다.
JDBC : Oracle : 드라이버 : username/password@database
따라서 위의 연결은 다음과 같이 생성 될 수 있습니다.
String URL = "JDBC : Oracle : Thin : username/password@amrood : 1521 : emp"; Connection Conn = driverManager.getConnection (url);
데이터베이스 URL 및 속성 객체를 사용하십시오.
DriverManager.getConnection () 메소드의 세 번째 형태에는 데이터베이스 URL과 속성 개체가 필요합니다.
DriverManager.getConnection (문자열 URL, 속성 정보);
속성 개체는 키워드 값 쌍 세트를 저장합니다. 드라이버 속성이 드라이버로 전달되면 getConnection () 메소드를 호출하는 데 사용됩니다.
이전 예제를 통해 동일한 연결을하려면 다음 코드를 사용하십시오.
import java.util.*; String url = "jdbc : oracle : thin : thin : @amrood : 1521 : emp"; properties info = new Properties (); info.put ( "user", "username"); info.put ( "password", "password"); connection conn = driverManager.getConnection (URL, info);
JDBC 연결 닫기 :
JDBC 프로그램이 끝나면 각 데이터베이스 세션을 종료하기 위해 데이터베이스에 대한 모든 연결을 닫아야합니다. 그러나 잊어 버리면 Java Garbage Collector가 연결을 닫고 오래된 물체를 지 웁니다.
쓰레기 수집, 특히 데이터베이스 프로그래밍에 의존하는 것은 매우 열악한 프로그래밍 습관입니다. 항상 연결 객체와 관련된 Close () 메소드를 닫는 습관이 있어야합니다.
연결이 닫히도록하려면 코드의 최종적 블록에서 실행할 수 있습니다. 마지막으로 블록이 발생하든 아니든 실행됩니다.
위에서 열린 연결을 닫으려면 Close () 메소드를 다음과 같이 호출해야합니다.
conn.close ();
리소스를 절약하기 위해 DBMS와의 연결을 명시 적으로 닫습니다.
JDBC 응용 프로그램 작성 :
JDBC 응용 프로그램 구축과 관련된 6 단계가 있습니다.
샘플 코드 :
이 예제는 JDBC 응용 프로그램을 작성해야 할 때 템플릿으로 사용할 수 있습니다.
이 샘플 코드는 이전 장의 환경 및 데이터베이스 설치를 기반으로 작성됩니다.
다음 예제를 복사합니다. Java, 컴파일 및 실행 :
// 1 단계. 가져 오기 필수 패키지 java.sql.*; public class firstExample {// jdbc 드라이버 이름 및 데이터베이스 URL 정적 최종 문자열 jdbc_driver = "com.mysql.jdbc.driver"; 정적 최종 문자열 db_url = "jdbc : mysql : // localhost/emp"; // 데이터베이스 자격 증명 정적 최종 문자열 user = "사용자 이름"; 정적 최종 문자열 pass = "비밀번호"; public static void main (String [] args) {Connection Conn = null; 문자 stmt = null; {// 2 단계 : jdbc driver class.forname을 등록합니다 ( "com.mysql.jdbc.driver"); // 3 단계 : Connection System.out.println을 엽니 다 ( "데이터베이스 연결 ..."); conn = drivermanager.getConnection (db_url, user, pass); // 4 단계 : query system.out.println을 실행합니다 ( "statement ..."); stmt = conn.createstatement (); 문자열 SQL; SQL = "ID, 첫 번째, 마지막, 직원의 연령 선택"; resultSet rs = stmt.executeQuery (SQL); // 5 단계 : 결과 세트에서 데이터 추출 while (rs.next ()) {// 열별로 검색 int id = rs.getint ( "id"); int age = rs.getint ( "Age"); 문자열 first = rs.getString ( "첫 번째"); 문자열 last = rs.getString ( "last"); // 디스플레이 값 값 system.out.print ( "id :" + id); System.out.print ( ", 나이 :" + age); System.out.print ( ", 첫 번째 :" + first); System.out.println ( ", 마지막 :" + last); } // 6 단계 : 정리 환경 rs.close (); stmt.close (); conn.close (); } catch (sqlexception se) {// jdbc se.printstacktrace ()의 오류 핸들. } catch (예외 e) {// class.forname e.printstacktrace ()의 오류를 처리합니다. } 마침내 {// 마지막으로 자원을 닫는 데 사용되는 블록 {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // 우리가 할 수있는 것은 없습니다 {if (conn! = null) conn.close (); } catch (sqlexception se) {se.printstacktrace (); } // 종료 마침내 try} // END TRY SYSTEM.out.println ( "Goodbye!"); } // END MAIN} // END FIRSTEXAMPLE이제 위의 예를 다음과 같이 컴파일하겠습니다.
C :> Javac FirstExample.java
FirstExample을 실행할 때 다음과 같은 결과가 발생합니다.
C :> Java FirstExample
데이터베이스 연결 ... 제작 명령문 ... ID : 100, 연령 : 18, 첫 번째 : Zara, 마지막 : Aliid : 101, Age : 25, First : Mahnaz, Last : Fatmaid : 102, Age : 30, First : Zaid, Last : 103, 나이 : 28, 첫 번째 : Sumit, Mittal