7단계를 포함하여 JDBC를 사용하여 데이터베이스에 연결하는 프로그램을 만듭니다.
1. JDBC 드라이버 로드:
데이터베이스에 연결하기 전에 먼저 로드해야 합니다. 연결하려는 데이터베이스의 드라이버는 JVM(Java Virtual Machine)입니다.
이는 java.lang.Class 클래스의 정적 메소드 forName(String className)을 통해 달성됩니다. .
예:
시도{
//MySql 드라이버 클래스 로드
Class.forName("com.mysql.jdbc . Driver");
}catch(ClassNotFoundException e){
System.out.println("드라이버 클래스를 찾을 수 없습니다. 드라이버를 로드하지 못했습니다!");
e.printStackTrace();
}
로드에 성공하면 Driver 클래스의 인스턴스가 DriverManager 클래스에 등록됩니다.
2. JDBC 연결 URL을 제공합니다. 연결 URL은 데이터베이스에 연결할 때 프로토콜, 하위 프로토콜 및 데이터 소스 식별자를 정의합니다. 작성 형식: 프로토콜: 서브프로토콜: 데이터 소스 식별자
프로토콜: JDBC에서 항상 jdbc로 시작
서브프로토콜: 브릿지 연결의 드라이버 또는 데이터베이스 관리 시스템의 이름입니다. .
데이터 소스 식별: 데이터베이스 소스가 발견된 주소와 연결 포트를 표시합니다.
예: (MySql 연결 URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=trueamp;characterEncoding=gbk;< /p>
useUnicode=true: 유니코드 문자 집합을 사용함을 나타냅니다. CharacterEncoding이
gb2312 또는 GBK로 설정된 경우 이 매개변수를 true로 설정해야 합니다. CharacterEncoding=gbk: 문자 인코딩 방법.
3. 데이터베이스 연결을 생성하려면 java.sql.DriverManager에서 연결 개체를 요청하고 가져와야 합니다.
이 개체는 데이터베이스 연결을 나타냅니다. DriverManager의 getConnectin(String url, String username,
String Password) 메소드를 사용하여 연결될 지정된 데이터베이스의 경로, 데이터베이스의 사용자 이름 및
그것을 얻기 위한 비밀번호.
예:
//MySql 데이터베이스에 연결하고 사용자 이름과 비밀번호는 루트입니다.
String url = "jdbc:mysql://localhost: 3306/test " ;
문자열 사용자 이름 = "root" ;
문자열 비밀번호 = "root" ;
try{
연결 시도 con =< /p>
DriverManager.getConnection(url, 사용자 이름, 비밀번호);
}catch(SQLException se){
System.out.println("데이터베이스 연결 failed!" );
se.printStackTrace() ;
}
4. 명령문 생성 SQL 문을 실행하려면 java. sql.Statement 인스턴스.Statement 인스턴스는 다음과 같은 3가지 유형으로 구분됩니다.
1. 정적 SQL 문을 실행합니다. 일반적으로 State 인스턴스를 통해 구현됩니다.
2. 동적 SQL 문을 실행합니다. 일반적으로 ReadyStatement 인스턴스를 통해 구현됩니다.
3. 데이터베이스 저장 프로시저를 실행합니다. 일반적으로 CallableStatement 인스턴스를 통해 구현됩니다.
구체적인 구현 방법:
Statement stmt = con.createStatement();
PreparedStatement pstmt = con.prepareStatement(sql);
CallableStatement cstmt =
con.prepareCall("{CALL decoSp(?, ?)}");
5. SQL 문 실행
Statement 인터페이스 3 SQL 문을 실행하는 메소드가 제공됩니다: ExecutionQuery, ExecuteUpdate
및 Execute
1. ResultSet ExecuteQuery(String sqlString): 데이터베이스를 쿼리하기 위해 SQL 문을 실행합니다.
, 결과 세트(ResultSet) 객체를 반환합니다.
2. int excuteUpdate(String sqlString): INSERT, UPDATE 또는
DELETE 문과 SQL DDL 문(예: CREATE TABLE 및 DROP TABLE 등)을 실행하는 데 사용됩니다.
p>< p>3.execute(sqlString): 여러 결과 집합, 여러 업데이트 횟수 또는 둘의 조합을 반환하는 문을 실행하는 데 사용됩니다.
특정 구현 코드:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...");
int 행 = stmt.executeUpdate( " INSERT INTO ...");
부울 플래그 = stmt.execute(String sql);
6. 처리 결과
두 가지 상황:< /p >
1. 업데이트를 실행하면 이 작업의 영향을 받은 레코드 수가 반환됩니다.
2. 쿼리를 실행하여 반환되는 결과는 ResultSet 개체입니다. ResultSet에는 SQL 문의 조건과 일치하는 모든 행이 포함되어 있으며 일련의 get 메소드를 통해 이러한 행의 데이터에 대한 액세스를 제공합니다. 데이터를 얻으려면 ResultSet 객체의 액세스 방법을 사용하십시오:
while(rs.next()){
String name = rs.getString("name");
p>String pass = rs.getString(1); // 이 방법이 더 효율적입니다.
}
(열의 번호는 왼쪽에서 오른쪽으로 지정됩니다. 1열 시작)
7. JDBC 개체 닫기
작업이 완료된 후 사용된 모든 JDBC 개체를 닫아 JDBC 리소스를 해제하고 시퀀스 조화를 닫아야 합니다.
< p> 순서가 반대입니다.1. 레코드 세트를 닫습니다.
2. 문을 닫습니다.
3. p>if(rs ! = null){ // 레코드 세트 닫기
try{
rs.close();
}catch(SQLException e ){
< p>e.printStackTrace();}
}
if(stmt != null){ // 문 닫기
try{
stmt.close();
}catch(SQLException e){
e.printStackTrace();< /p>
}
}
if(conn != null){ // 연결 개체를 닫습니다.
try{
< p>conn.close();}catch(SQLException e){
e.printStackTrace();
}
}