>  기사  >  Java  >  Java의 데이터베이스 및 단계에 대한 JDBC 연결에 대한 자세한 설명 및 예

Java의 데이터베이스 및 단계에 대한 JDBC 연결에 대한 자세한 설명 및 예

高洛峰
高洛峰원래의
2017-02-28 15:37:141905검색

Java의 JDBC 데이터베이스 연결 코드 및 단계에 대한 자세한 설명

JDBC 연결 데이터베이스

• 데이터베이스에 연결하는 프로그램 만들기 JDBC 사용, 7단계 포함:

1. JDBC 드라이버 로드:

데이터베이스에 연결하기 전에 먼저 드라이버를 로드해야 합니다. 연결하려는 데이터베이스의 JVM(Java Virtual Machine)에 대한 작업은 java.lang.Class 클래스의 정적 메소드 forName(String className)을 통해 수행됩니다.

예:


  try{  
  //加载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=true&characterEncoding=gbk ;


useUnicode=true: 유니코드 문자 세트를 사용하십시오. CharacterEncoding이

gb2312 또는 GBK로 설정된 경우 이 매개변수를 true로 설정해야 합니다. CharacterEncoding=gbk: 문자 인코딩 방법.

3. 데이터베이스 연결 생성

• 데이터베이스에 연결하려면 java.sql에서 Connection 개체를 요청하고 가져와야 합니다. .DriverManager, 이는 데이터베이스 연결을 나타냅니다.
• DriverManager의 getConnectin(문자열 url, 문자열 사용자 이름, 문자열 비밀번호) 메소드를 사용하여 연결할 지정된 데이터베이스의 경로, 데이터베이스의 사용자 이름 및

비밀번호를 전달하여 가져옵니다. 그것.

예:


//连接MySql数据库,用户名和密码都是root  
   String url = "jdbc:mysql://localhost:3306/test" ;  
   String username = "root" ;  
   String password = "root" ;  
   try{  
  Connection con =  
       DriverManager.getConnection(url , username , password ) ;  
   }catch(SQLException se){  
  System.out.println("数据库连接失败!");  
  se.printStackTrace() ;  
   }


4. 성명 만들기

•SQL 문장을 실행하기 위해서는 java.sql.Statement 인스턴스를 얻어야 한다. 문장 인스턴스는 다음과 같은 3가지 종류로 나누어진다.

1. 실행 정적 SQL 문. 일반적으로 State 인스턴스를 통해 구현됩니다.​
2. 동적 SQL문을 실행한다. 일반적으로 ReadyStatement 인스턴스를 통해 구현됩니다.
3. 데이터베이스 저장 프로시저를 실행합니다. 일반적으로 CallableStatement 인스턴스를 통해 구현됩니다.

구체적인 구현:


Statement stmt = con.createStatement() ;  
    PreparedStatement pstmt = con.prepareStatement(sql) ;  
    CallableStatement cstmt =  
              con.prepareCall("{CALL demoSp(? , ?)}") ;


5. SQL 문 실행

Statement 인터페이스는 SQL 문을 실행하기 위한 세 가지 메서드인 ExecuteQuery, ExecuteUpdate 및 Execution
을 제공하며 결과 집합(ResultSet) 개체를 반환합니다.

2. int excuteUpdate(String sqlString): INSERT, UPDATE 또는 DELETE 문과 SQL DDL 문(예: CREATE TABLE 및 DROP TABLE 등)을 실행하는 데 사용됩니다.

3. Execute(sqlString): 실행하는 데 사용됩니다. 여러 결과 집합, 여러 업데이트 횟수 또는 이 둘의 조합을 반환하는 문입니다.


구체적인 구현 코드 :


     ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;  
  int rows = stmt.executeUpdate("INSERT INTO ...") ;  
  boolean flag = stmt.execute(String sql) ;


6. 처리 결과

두 가지 상황:

1. 업데이트를 실행하면 이 작업의 영향을 받은 레코드 수가 반환됩니다.

2. 쿼리를 실행하여 반환되는 결과는 ResultSet 개체입니다. ​

​ • ResultSet에는 SQL 문의 조건을 충족하는 모든 행이 포함되어 있으며 일련의 get 메소드를 통해 이러한 행의 데이터에 대한 액세스를 제공합니다.
• ResultSet 객체의 액세스 방법을 사용하여 데이터를 얻습니다.


  while(rs.next()){  
     String name = rs.getString("name") ;  
  String pass = rs.getString(1) ; // 此方法比较高效  
   }


(열은 왼쪽에서 오른쪽으로 번호가 매겨져 있습니다. 1열부터 시작)


 7、关闭JDBC对象    

     操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声  明顺序相反:   

     1、关闭记录集  
     2、关闭声明  
     3、关闭连接对象   


     if(rs != null){  // 关闭记录集  
    try{  
      rs.close() ;  
    }catch(SQLException e){  
      e.printStackTrace() ;  
    }  
     }  
     if(stmt != null){  // 关闭声明  
    try{  
      stmt.close() ;  
    }catch(SQLException e){  
      e.printStackTrace() ;  
    }  
     }  
     if(conn != null){ // 关闭连接对象  
     try{  
      conn.close() ;  
     }catch(SQLException e){  
      e.printStackTrace() ;  
     }  
     }


感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多java 中JDBC连接数据库和步骤详解及实例相关文章请关注PHP中文网!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.