注册jdbc驱动程序的三种方式
来源:互联网 发布:淘宝客服周总结 编辑:程序博客网 时间:2024/05/16 18:35
一、DriverManager.registerDriver(new
jdbc是使用桥的模式进行连接的。DriverManager就是管理数据库驱动的一个类,java.sql.Driver就 是一个提供注册数据库驱动的接口,而com.microsoft.sqlserver.jdbc.SQLServerDriver()是 java.sql.Driver接口的一个具体实现。
二、System.setProperty("jdbc.drivers",
多个驱动使用冒号分隔开,在连接时JDBC会按顺序搜索,直到找到第一个能成功连接指定URL的驱动程序。
三、Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
第二种与第三种方法可以脱离jdbc的驱动进行编译,第一种方法不可以的,它一定要有jdbc的驱动才可以通过编译,这样对我们的程序就有很多的不好之处,为程序换数据库会带来麻烦。
我们通过Driver类的源码可以了解到,Driver类中就有一个静态的代码块,只要我们执行了Driver类中的静态代码块,并把驱动的实例放入到Drivers的一个数组列表中,我们再调用方法registerDrever就相当于又向drivers列表中放了一次driver驱动,虽然这并不影响我们程序,但是这样做实在是没有必要,还会影响程序的运行。
所以推荐使用第三种方法来注册驱动。
第三中的好处在于能够在编译时不依赖于特定的JDBCDriver库,也就是减少了项目代码的依赖性,而且也很容易改造成从配置文件读取JDBC配置,从而可以在运行时动态更换数据库连接驱动。
******************************************************************************************************************************************************************************************************
1、比较常用
try{
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from tablename");
while(rs.next()){//不断指向下一条记录
System.out.println("DeptNo:"+rs.getInt(1));
System.out.println("\tDeptName:"+rs.getString(2));
System.out.println("\tLOC:"+rs.getString(3));
}
rs.close();
stmt.close();
conn.close();
}catch(ClassNotFoundException e){
System.out.println("找不到指定的驱动程序类!");
}catch(SQLException e){
e.printStackTrace();
}
2、通过系统的属性设置
try{
System.setProperty("jdbc.driver","com.mysql.jdbc.Driver");//系统属性指定数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from tablename");
while(rs.next()){//不断指向下一条记录
System.out.println("DeptNo:"+rs.getInt(1));
System.out.println("\tDeptName:"+rs.getString(2));
System.out.println("\tLOC:"+rs.getString(3));
}
rs.close();
stmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
3、看起来比较直观的一种方式,注册相应的db的jdbc驱动,3在编译时需要导入对应的lib
try{
new com.mysql.jdbc.Driver();//创建driver对象,加载数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from tablename");
while(rs.next()){//不断指向下一条记录
System.out.println("DeptNo:"+rs.getInt(1));
System.out.println("\tDeptName:"+rs.getString(2));
System.out.println("\tLOC:"+rs.getString(3));
}
rs.close();
stmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
0 0
- 注册Jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册Jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- JDBC注册驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- 注册jdbc驱动程序的三种方式
- JDBC注册驱动程序三种方式
- JDBC注册驱动程序三种方式
- ubuntu14.04开机自动挂载windows磁盘的配置方法
- 写入内容到文件中
- 导入到Myeclipse中项目注释乱码问题
- iOS学习之UIActionSheet的使用
- hdu 1075 二分搜索
- 注册jdbc驱动程序的三种方式
- ACdream原创群赛(18)のAK's dream
- Apache MINA 快速入门以及架构介绍
- 使用dom4j四种读取xml文件的方法
- sqlite遇到database is locked问题的完美解决
- 注册、登陆、修改密码、添加、删除、查询的测试用例设计
- 最简单的Handler的用法
- FlashP2P系统(客户端)系统分析和设计谍照
- 矢量叉积与折线段拐向判断---三角形顺逆判断