知识点一、
Class.forName(driverName); 加载一个类,默认会先加载静态方法(可以做“见不得人”的事情),这个静态方法就是把自己注册到 DriverManager中。
Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
public class Driver extends NonRegisteringDriver implements java.sql.Driver {//类名和接口名相同,但不是同一个东西 static { try { java.sql.DriverManager.registerDriver(new Driver());//这里注册 } catch (SQLException E) { throw new RuntimeException("Can't register driver!"); } } …… }
知识点二、 jdbc4.0之后,每个驱动jar包中,在META-INF目录下提供了一个名为java.sql.Driver的文件。文件的内容就是该接口的实现类名称!
所以不用写这句Class.forName(driverName);
知识点三、 各大驱动写法
#mysql
#url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&useServerPrepStmts=true&cachePrepStmts=true&prepStmtCacheSize=50&prepStmtCacheSqlLimit=300
#driverClassName=com.mysql.jdbc.Driver
#mssql
#driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
#url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mydb
#mssql jtds
#driverClassName=net.sourceforge.jtds.jdbc.Driver
#url=jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=mydb
#orcale
#driverClassName=oracle.jdbc.driver.OracleDriver
#url=jdbc:oracle:thin:@localhost:1521:mydb
#access
#driverClassName=sun.jdbc.odbc.JdbcOdbcDriver 微软的桌面数据库
#url=jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=mdb\mydb.mdb