jdbc连接数据库的五种方式

package com.atguigu.connection;

import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/*
 *
 *
 *
 *
 *@author 刘鑫
 *@create by 2021/4/29 11:03
 */
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中
        Properties info = new Properties();
        info.setProperty("user","root");
        info.setProperty("password","a421546457");
        Connection conn = driver.connect(url, info);
        System.out.println(conn);
    }

    //方式二:对方式一的迭代:在如下的程序中不出现第三方的API,具有更好的移植性
    @Test
    public void testConnection2() throws Exception {
        //1、获取Driver实现类对象,使用反射
        Class<?> clazz = Class.forName("com.mysql.jdbc.Driver");
        Constructor<?> declaredConstructor = clazz.getDeclaredConstructor();
        Driver driver = (Driver) declaredConstructor.newInstance();

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

        //3、提供连接需要的用户名和密码
        Properties info = new Properties();
        info.setProperty("user","root");
        info.setProperty("password","a421546457");

        //4、获取连接
        Connection conn = driver.connect(url, info);
        System.out.println(conn);

    }

    //方式三:使用DriverManager替换Driver
    @Test
    public void testConnection3() throws Exception {

        //1、获取Driver实现类对象
        Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");
        Constructor<?> declaredConstructor = aClass.getDeclaredConstructor();
        Driver driver = (Driver) declaredConstructor.newInstance();
        //2、提供两外三个连接的基本信息
        String url = "jdbc:mysql://localhost:3306/test";
        String user = "root";
        String password="a421546457";

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

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

    //方式四:在方式三的基础上进行优化
    @Test
    public void testConnection4() throws Exception {

        //1、提供三个连接的基本信息
        String url = "jdbc:mysql://localhost:3306/test";
        String user = "root";
        String password="a421546457";

        //2、加载Driver
        //mysql的Driver类中有静态代码块
        Class.forName("com.mysql.jdbc.Driver");

//      相较于方式三,可以省略如下的操作:

        /*Constructor<?> declaredConstructor = aClass.getDeclaredConstructor();
        Driver driver = (Driver) declaredConstructor.newInstance();
        //注册驱动
        DriverManager.registerDriver(driver);*/

        /*
        * 为什么可以省略上述操作呢?
        * mysql的Driver类中有静态代码块如下,帮我们注册好了驱动:
        *  static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
        * */

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

    }

    //方式五(final版):将数据库连接需要的四个基本信息声明在配置文件中,通过读取配置文件的方式,获取连接
    /*
    * 此种方式的好处?
    * 1、实现了数据和代码的分离。实现了解耦
    * 2、如果需要修改配置文件信息,可以避免程序重新打包
    *
    * */
 @Test
    public void testConnection5(){
     //1、读取配置文件中的4个基本信息
     InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
     Properties properties = new Properties();
     try {
         properties.load(is);
     } catch (IOException e) {
         e.printStackTrace();
     }
     String url = properties.getProperty("url");
     String user = properties.getProperty("user");
     String password = properties.getProperty("password");
     String driverClass = properties.getProperty("driverClass");

     //2、加载数据库驱动
     try {
         Class.forName(driverClass);
     } catch (ClassNotFoundException e) {
         e.printStackTrace();
     }

     //3、获取数据库连接
     try {
         Connection connection = DriverManager.getConnection(url, user, password);
         System.out.println(connection);
     } catch (SQLException throwables) {
         throwables.printStackTrace();
     }



 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,使用JDBCJava数据库连接)来连接数据库。以下是一个简单的例子: 1. 导入JDBC驱动程序 在Java应用程序中连接数据库之前,需要先导入JDBC驱动程序。这可以通过将JDBC驱动程序的jar文件添加到类路径中来完成。例如,如果您使用MySQL数据库,则需要下载并添加MySQL JDBC驱动程序的jar文件。 2. 加载JDBC驱动程序 在使用JDBC连接数据库之前,需要先加载JDBC驱动程序。可以通过Class.forName()方法来加载JDBC驱动程序。例如,如果您使用MySQL数据库,则需要加载com.mysql.jdbc.Driver类。 3. 建立数据库连接 可以使用DriverManager.getConnection()方法来建立数据库连接。此方法需要指定数据库的URL、用户名和密码。例如,以下是连接MySQL数据库的示例: ``` import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class JdbcConnection { public static void main(String[] args) { Connection conn = null; try { // 加载JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 String url = "jdbc:mysql://localhost:3306/mydb"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); System.out.println("数据库连接成功!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } } ``` 在上面的示例中,我们首先使用Class.forName()方法加载MySQL JDBC驱动程序。然后,我们使用DriverManager.getConnection()方法建立到MySQL数据库连接。最后,我们在finally块中关闭数据库连接

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值