JavaEE JDBC 怎么加载驱动
2017-01-17 10:20
471 查看
JDBC怎么加载驱动
@author ixenos分析
1.JDBC是一套连接数据库的接口(放在java.util.sql.Driver类中),不同的数据库依此接口各自实现Java连接到数据库的操作,这些具体的实现就叫做驱动;2.当只连接一个数据库时,我们可以new 驱动对象来使用,但是当多数据库连接时,要多次创建Driver示例,多次创连接Connection,有些繁琐,这时,sun提供了一个驱动的管理器DriverManager,注册驱动就可以调用;
3.但是每次还是要创Driver实例,然后都进行注册,而且可能重复注册,怎么办?jdbc驱动的实现者就把新建实例和驱动注册的操作包裹为一个static块(在类加载连接初始化时运行,且只运行一次),这样加载驱动时就执行这些操作了,这也就是为什么只用Class.forName的由来。
com.mysql.jdbc.Driver对加载驱动的实现
com.mysql.jdbc.Driver把DriverManager的注册放在了静态块中代码
import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.util.Properties; import org.junit.Test; /** * jdbc连接数据库 * @author ixenos * */ public class Demo1 { //连接数据库的URL private String url = "jdbc:mysql://localhost:3306/day17"; // jdbc协议:数据库子协议:主机:端口/连接的数据库 // private String user = "root";//用户名 private String password = "root";//密码 /** * 第一种方法 * @throws Exception */ @Test public void test1() throws Exception{ //1.创建驱动程序类对象 Driver driver = new com.mysql.jdbc.Driver(); //新版本 //Driver driver = new org.gjt.mm.mysql.Driver(); //旧版本 //设置用户名和密码 Properties props = new Properties(); props.setProperty("user", user); props.setProperty("password", password); //2.连接数据库,返回连接对象 Connection conn = driver.connect(url, props); System.out.println(conn); } /** * 使用驱动管理器类连接数据库(注册了两次,没必要) * @throws Exception */ @Test public void test2() throws Exception{ Driver driver = new com.mysql.jdbc.Driver(); //Driver driver2 = new com.oracle.jdbc.Driver(); //1.注册驱动程序(可以注册多个驱动程序) DriverManager.registerDriver(driver); //DriverManager.registerDriver(driver2); //2.连接到具体的数据库 Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); } /** * (推荐使用这种方式连接数据库) * 推荐使用加载驱动程序类 来 注册驱动程序 * @throws Exception */ @Test public void test3() throws Exception{ //Driver driver = new com.mysql.jdbc.Driver(); //通过得到字节码对象的方式加载静态代码块,从而注册驱动程序 Class.forName("com.mysql.jdbc.Driver"); //Driver driver2 = new com.oracle.jdbc.Driver(); //1.注册驱动程序(可以注册多个驱动程序) //DriverManager.registerDriver(driver); //DriverManager.registerDriver(driver2); //2.连接到具体的数据库 Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); } }
相关文章推荐
- [JAVA100例]053、加载JDBC驱动
- java基础-jdbc——三种方式加载驱动建立连接
- [疯狂Java]JDBC:加载数据库驱动、连接数据库
- 关于java jdbc 动态加载驱动jar包
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之03.JDBC Statement(2) 推荐
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之03.JDBC Statement(1)
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之35.安装使用MySQL及SQL Manager 推荐
- mysql4.1.10的JDBC驱动(mysql-connector-java-3.1.7-bin.jar)的配置及测试
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之08.JDBC可更新的ResultSet及RowSet 推荐
- Java EE WEB工程师培训—JDBC+Servlet+JSP整合开发之32. HTML简介 推荐
- java用URLClassLoader动态加载JDBC
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之05.JDBC MetaData
- JSP中oracleJDBC驱动的加载(20060111)
- JDBC中驱动加载的过程分析
- 在JAVA中如何用JDBC驱动连接MS SQL数据库
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之34.Tomcat安装与配置 推荐
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之02.JDBC Connection 推荐
- 怎么安装MYSQL5.0的JDBC驱动
- SQL2000 关于 Java JDBC 驱动的安装和设定
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之01.JDBC简介 推荐