JDBC数据库连接的五种方式

一、JDBC

JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API)。简单理解为JDBC是SUN提供的一套 API,使用这套API可以实现对具体数据库的操作(获取连接、关闭连接、DML、DDL、DCL)。
在这里插入图片描述

二、JDBC实现数据库连接的五种方式

public class ConnectionTest {
    //方式一
    @Test
    public void testConnection1() throws SQLException {
        //获取Driver实现类对象
        Driver driver = new com.mysql.jdbc.Driver();

        String url = "jdbc:mysql://localhost:3306/test";

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

        Connection connection = driver.connect(url,info);

        System.out.println(connection);
    }

    //方式二
    @Test
    public void testConnection2() throws ClassNotFoundException, IllegalAccessException, InstantiationException, SQLException {
        //获取Driver实现类对象,使用反射
        Class clazz = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) clazz.newInstance();

        //提供要连接的数据库
        String url = "jdbc:mysql://localhost:3306/test";

        //提供要连接的数据库的用户名和密码
        Properties info = new Properties();
        info.setProperty("user","root");
        info.setProperty("password","root");

        //获取连接
        Connection connection = driver.connect(url,info);

        System.out.println(connection);
    }

    //方式三:使用DriverManager替换Driver
    @Test
    public void testConnection3() throws ClassNotFoundException, IllegalAccessException, InstantiationException, SQLException {
        //获取Driver实现类对象,使用反射
        Class clazz = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) clazz.newInstance();

        //提供要连接的数据库地址、数据库的用户名和密码
        String url = "jdbc:mysql://localhost:3306/test";
        String user = "root";
        String password = "root";

        //注册驱动
        DriverManager.registerDriver(driver);

        //获取连接
        Connection connection = DriverManager.getConnection(url, user, password);

        System.out.println(connection);
    }

    //方式四:只是加载驱动,不用显示的注册驱动
    @Test
    public void testConnection4() throws ClassNotFoundException, SQLException {

        //1、提供要连接的数据库地址、数据库的用户名和密码
        String url = "jdbc:mysql://localhost:3306/test";
        String user = "root";
        String password = "root";


        //2、加载Driver,可以省略注册驱动这一步,因为在MySQL的Driver实现类中,有一个静态代码块,实现了注册驱动
        Class.forName("com.mysql.jdbc.Driver");
//        Driver driver = (Driver) clazz.newInstance();
//        //注册驱动
//        DriverManager.registerDriver(driver);

        //3、获取连接
        Connection connection = DriverManager.getConnection(url, user, password);
        System.out.println(connection);
    }

    //方式五:将数据库连接需要的4个基本信息声明在配置文件中,通过读取配置文件的方式获取连接。这样只需要修改配置文件,实现了数据与代码的分离
    @Test
    public void testConnection5() throws IOException, ClassNotFoundException, SQLException {
        //1、读取配置文件中的4个基本信息
        InputStream resourceAsStream = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");//类的加载器的一个主要方法getResourceAsStream() ,可以获取类路径下的指定文件的输入流

        Properties properties = new Properties();
        properties.load(resourceAsStream);

        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        String url = properties.getProperty("url");
        String driverClass = properties.getProperty("driverClass");


        //2、加载驱动
        Class.forName(driverClass);


        //3、获取连接
        Connection connection = DriverManager.getConnection(url, user, password);
        System.out.println(connection);
    }

}


版权声明:本文为qq_39794062原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。