Class.forName 데이터베이스 연결

1695 단어 sqlmysqljdbc
간단한 데이터베이스 연결을 수동으로 작성한 지 오래되었기 때문에, 오늘은 작은 예를 들어 테스트해 보려고 합니다.
질문 발견: -)
코드를 보십시오.
...
    /**MYSQL   */
    public static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
    /**MYSQL URL*/
    public static final String MYSQL_URL = "jdbc:mysql://127.0.0.1:3306/ben_test?useUnicode=true&characterEncoding=utf-8";
    /**MYSQL    */
    public static final String MYSQL_US  = "root";
    /**MYSQL   */
    public static final String MYSQL_PASS="root";

   /**
    *   MYSQL  
   * @return Connection
    */
    public Connection getMySQLConn(){
        Connection conn = null;
        try {
            Class.forName(MYSQL_DRIVER);
            conn = DriverManager.getConnection(MYSQL_URL, MYSQL_US, MYSQL_PASS);
        } catch (Exception e) {}
        return conn;
    }
...

다들 아시다시피 클라스.forName(...); 이거 등록 드라이브인데 없으면 틀릴 수도 있어요.
연구해 보니..
 
원래 static을 사용하여 코드에 숨김: -)
package com.mysql.jdbc;

import java.sql.DriverManager;
import java.sql.SQLException;

public class Driver extends NonRegisteringDriver    implements java.sql.Driver {

    public Driver() throws SQLException{
    }

    static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch(SQLException e) {
            throw new RuntimeException("Can't register driver!");
        }
    }
}

 
알겠지ㅋㅋ```
원리를 알면 마음껏 발휘할 수 있으니 더 이상 말하지 않겠습니다.

좋은 웹페이지 즐겨찾기