JDBC注册驱动程序的三种方式
2015-05-27 21:47
260 查看
注:转载之>>>/article/4098431.html和http://blog.sina.com.cn/s/blog_670c5a4001017e2e.html
JDBC注册驱动程序三种方式
1. Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
Java代码
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
此方式由于参数为字符串,因此很容易修改,移植性强。
最常见的注册方式,也是推荐的方式。
第一中的好处在于能够在编译时不依赖于特定的JDBC Driver库,也就是减少了项目代码的依赖性,而且也很容易改造成从配置文件读取JDBC配置,从而可以在运行时动态更换数据库连接驱动。
2.System.setProperty("jdbc.drivers","com.mysql.jdbc.Driver");
Java代码
System.setProperty("jdbc.driver","com.mysql.jdbc.Driver");//系统属性指定数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
可以同时导入多个jdbc驱动,中间用冒号“:”分开
比如System.setProperty("jdbc.drivers","XXXDriver:XXXDriver:XXXDriver");
这样就一次注册了三个数据库驱动
3. new com.mysql.jdbc.Driver() ;//创建driver对象,加载数据库驱动
Java代码
new com.mysql.jdbc.Driver();//创建driver对象,加载数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
这里不需要这样写DriverManager.registerDriver(new com.mysql.jdbc.Driver()),原因是com.mysql.jdbc.Driver类的静态代码快里面已经进行了修改的操作。我们通过Driver类的源码可以了解到,Driver类中就有一个静态的代码块,只要我们执行了Driver类中的静态代码块,并把驱动的实例放入到Drivers的一个数组列表中,我们再调用方法registerDrever就相当于又向drivers列表中放了一次driver驱动,虽然这并不影响我们程序,但是这样做实在是没有必要,还会影响程序的运行。
Java代码
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
由new com.mysql.jdbc.Driver()可以知道,这里需要创建一个类的实例。创建类的实例就需要在java文件中将该类通过import导入,否则就会报错,即采用这种方式,程序在编译的时候不能脱离驱动类包,为程序切换到其他数据库带来麻烦
jdbc是使用桥的模式进行连接的。DriverManager就是管理数据库驱动的一个类,java.sql.Driver就 是一个提供注册数据库驱动的接口,而com.microsoft.sqlserver.jdbc.SQLServerDriver()是 java.sql.Driver接口的一个具体实现。
第二种与第三种注册的方法看起来更加的直接与好理解。第一种方法是通过Class把类先装载到java的虚拟机中,并没有创建Driver类的实例。
第一种与第二种方法可以脱离jdbc的驱动进行编译,第三种方法不可以的,它一定要有jdbc的驱动才可以通过编译,这样对我们的程序就有很多的不好之处,为程序换数据库会带来麻烦。
所以推荐使用第一种方法来注册驱动。
总结:推荐1,和2两种方式。
原因:3在编译时需要导入对应的lib。1,2不需要。
JDBC注册驱动程序三种方式
1. Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
Java代码
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
此方式由于参数为字符串,因此很容易修改,移植性强。
最常见的注册方式,也是推荐的方式。
第一中的好处在于能够在编译时不依赖于特定的JDBC Driver库,也就是减少了项目代码的依赖性,而且也很容易改造成从配置文件读取JDBC配置,从而可以在运行时动态更换数据库连接驱动。
2.System.setProperty("jdbc.drivers","com.mysql.jdbc.Driver");
Java代码
System.setProperty("jdbc.driver","com.mysql.jdbc.Driver");//系统属性指定数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
可以同时导入多个jdbc驱动,中间用冒号“:”分开
比如System.setProperty("jdbc.drivers","XXXDriver:XXXDriver:XXXDriver");
这样就一次注册了三个数据库驱动
3. new com.mysql.jdbc.Driver() ;//创建driver对象,加载数据库驱动
Java代码
new com.mysql.jdbc.Driver();//创建driver对象,加载数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
这里不需要这样写DriverManager.registerDriver(new com.mysql.jdbc.Driver()),原因是com.mysql.jdbc.Driver类的静态代码快里面已经进行了修改的操作。我们通过Driver类的源码可以了解到,Driver类中就有一个静态的代码块,只要我们执行了Driver类中的静态代码块,并把驱动的实例放入到Drivers的一个数组列表中,我们再调用方法registerDrever就相当于又向drivers列表中放了一次driver驱动,虽然这并不影响我们程序,但是这样做实在是没有必要,还会影响程序的运行。
Java代码
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
由new com.mysql.jdbc.Driver()可以知道,这里需要创建一个类的实例。创建类的实例就需要在java文件中将该类通过import导入,否则就会报错,即采用这种方式,程序在编译的时候不能脱离驱动类包,为程序切换到其他数据库带来麻烦
jdbc是使用桥的模式进行连接的。DriverManager就是管理数据库驱动的一个类,java.sql.Driver就 是一个提供注册数据库驱动的接口,而com.microsoft.sqlserver.jdbc.SQLServerDriver()是 java.sql.Driver接口的一个具体实现。
第二种与第三种注册的方法看起来更加的直接与好理解。第一种方法是通过Class把类先装载到java的虚拟机中,并没有创建Driver类的实例。
第一种与第二种方法可以脱离jdbc的驱动进行编译,第三种方法不可以的,它一定要有jdbc的驱动才可以通过编译,这样对我们的程序就有很多的不好之处,为程序换数据库会带来麻烦。
所以推荐使用第一种方法来注册驱动。
总结:推荐1,和2两种方式。
原因:3在编译时需要导入对应的lib。1,2不需要。
相关文章推荐
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- JDBC注册驱动程序三种方式
- JDBC注册驱动程序三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册Jdbc驱动程序的三种方式
- JDBC注册驱动程序三种方式
- 注册jdbc驱动程序的三种方式
- JDBC注册驱动程序三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式