从零开始学JDBC--1.1 最简单的jdbc连接方式


本节内容,从最简单的jdbc连接方式开始,讲述如何与数据库建立连接;
这里的测试环境用Mysql5.1.73,开发前需要做一些准备,提前下载好mysql的jdbc驱动包,并导入lib库中(不会的童鞋请自行百度)

1.最简单的jdbc连接方式

/**
 * 连接数据库必备的条件:
 *  1.准备好驱动包  和对应的url写法,
 * 如mysql的驱动名称com.mysql.jdbc.Driver()对应的URL写法为:   
 *     jdbc:mysql://localhost:3306/admin
 *  2.知道驱动包的Driver名称
 *  3.数据库的用户名user
 *  4.密码password
 */

public class Demo1 {

    // 连接数据库的URL    [jdbc协议:数据库子协议://主机:端口/数据库名称]   -----标点符号都不能错,否则打死都连不上!!!
    private String url = "jdbc:mysql://localhost:3306/admin";
    private String user = "root"; 
    private String password = "123";

    /**
     * 数据库连接测试
     * 
     * @throws SQLException
     */
    @Test
    public void test1() throws SQLException {
        // 1.创建驱动程序类对象
        // Driver driver = new org.gjt.mm.mysql.Driver(); 旧版本
        Driver driver = new com.mysql.jdbc.Driver(); // mysql通用连接,推荐使用

        Properties prop = new Properties();
        prop.setProperty("user", user);
        prop.setProperty("password", password);

        // 2.连接数据库
        Connection conn = driver.connect(url, prop);

        // 3.输出连接信息
        System.out.println(conn);

    }

2. 使用驱动管理器类DriverManager连接数据库(无优化)



DriverManager是什么鬼呢?它用来管理向数据库中注册连接的相关事宜,在test2()中我们采用了注册的过程

    @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);
    }


通过阅读com.mysql.jdbc.Driver类,我们发现,在Driver初次加载时,静态代码块中已经通过静态代码块中调用DriverManager进行过注册了。。。不信你看图
从零开始学JDBC--1.1 最简单的jdbc连接方式_第1张图片


所以这个test2()算的上是脑残之举!!搬砖拍自己一下

3.使用驱动管理器类DriverManager连接数据库(优化方法)


在test2()方法中, 其实注册驱动程序(DriverManager.registerDriver(driver);)的过程
在new com.mysql.jdbc.Driver();这一步已经做过了,所以没必要再做
(通过阅读com.mysql.jdbc.Driver源码时发现在静态加载过程中有这个注册过程)

但是又出现另一个改造需求:能不能每次都不new这个类呢?怪累的,答案自然是:必须能!

test3()通过得到字节码对象的方式加载静态代码块(代码块里包含new对象和注册的过程),从而注册驱动程序

    @Test
    public void test3() throws Exception {

//      Driver driver = new com.mysql.jdbc.Driver();

        /*通过得到字节码对象的方式加载静态代码块(代码块里包含new对象和注册的过程),
         *从而注册驱动程序
         */
        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);
    }


}


到这里,一个精简的JDBC连接过程就真正实现了,但是这个只是ABC的水平,实际运用到项目中还是存在诸多问题的 稍后再为大家更新更牛逼的,敬请期待

你可能感兴趣的:(JDBC)