jdbc连接mysql(5种连接方式,循序渐进!!!)

        JDBC(Java Database Connectivity)是Java语言连接数据库的标准API,本质是一套接口规范(java.sql包下的类和接口),由数据库厂商提供驱动实现类(如MySQL的mysql-connector-java.jar),实现Java程序与不同数据库的交互。

一、安装mysql-connector-java.jar文件

下载地址(官网):MySQL :: Download Connector/J

注意:我的MySQL版本是8.0,所以下载一个相近版本即可

1.这里选一个8.0左右的都行,如果你的MySQL版本是5.0那么就选择5.1左右的版本!!!

2.最后点击下载即可

3.下载完后进行解压:

4.双击进入文件夹,找到jar文件 ,单击右键选择复制

5.进入idea,在自己的项目下新建一个libs目录并将jar文件粘贴

6.选中jar文件右键选择“Add as Library”(即:添加为库)

7.点击确定即可 

8.如果出现了jdbc的一些包和接口那么就成功了 


二、jdbc连接MySQL的方式

方法一:直接实例化Driver(静态加载)

实现步骤

  1. 直接创建com.mysql.cj.jdbc.Driver对象
  2. 通过Driver.connect()方法传递URL和Properties

代码:

@Test
public void connect01() throws SQLException {
    Driver driver = new Driver();  // 显式依赖MySQL驱动类
    String url = "jdbc:mysql://localhost:3306/mydb";
    Properties props = new Properties();
    props.setProperty("user", "root");
    props.setProperty("password", "root");
    Connection conn = driver.connect(url, props);  // 直接调用connect方法
    
}

注意事项:

1、接口名不要写错:import com.mysql.cj.jdbc.Driver;

2、URL格式是:jdbc:mysql://主机:端口/数据库名

3、MySQL用户名和密码要填自己的,不要写错了


方法二:反射动态加载Driver

实现步骤

  1. 通过Class.forName()反射加载驱动类
  2. 实例化Driver对象后调用connect()

代码:

@Test
public void connect02() throws Exception {
    Class<?> clazz = Class.forName("com.mysql.cj.jdbc.Driver");
    Driver driver = (Driver) clazz.newInstance();
    Properties properties = new Properties();
    properties.setProperty("user","root");
    properties.setProperty("password","root");
    String url="jdbc:mysql://localhost:3306/mydb";
    Connection connect = driver.connect(url, properties);
}

方法三:DriverManager统一管理驱动

实现步骤

  1. 反射加载驱动类
  2. 通过DriverManager.registerDriver()注册驱动
  3. 使用DriverManager.getConnection()获取连接

代码:

@Test
public void connect03() throws Exception {
    Class<?> clazz = Class.forName("com.mysql.cj.jdbc.Driver");
    Driver driver = (Driver) clazz.newInstance();
    String name="root";
    String password="root";
    String url = "jdbc:mysql://localhost:3306/mydb";
    DriverManager.registerDriver(driver);  // 注册驱动到DriverManager
    Connection conn = DriverManager.getConnection(url, user, password);
}

方法四:自动驱动注册(推荐)

实现步骤

  1. 仅需反射加载驱动类(无需实例化或注册)
  2. 直接调用DriverManager.getConnection()
@Test
public void connect04() throws Exception {
    Class.forName("com.mysql.cj.jdbc.Driver");  // 触发驱动静态代码块自动注册
    String name = "root";
    String password ="root";
    String url = "jdbc:mysql://localhost:3306/mydb";
    Connection conn = DriverManager.getConnection(url, user, password);
}

原理:(在com.mysql.cj.jdbc.Driver类中查看源码)

  • MySQL驱动类在静态代码块中自动注册到DriverManager
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    public Driver() throws SQLException {
    }

    static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
    }
}

类加载时自动向DriverManager注册自身,所以无需手动调用registerDriver()

方法五:配置文件解耦(企业级方案)

实现步骤

1.创建mysql.properties文件存储配置:

src目录下创建该文件即可

配置以下信息,注意用户名和密码是自己的

user=root
password=root
url=jdbc:mysql://localhost:3306/mydb?rewriteBatchedStatements=true
driver=com.mysql.cj.jdbc.Driver

2.通过Properties类读取配置并连接:

@Test
public void connect05() throws Exception {
        Properties properties = new Properties();
        properties.load(new FileInputStream("src\\mysql.properties"));
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        String url = properties.getProperty("url");
        String driver = properties.getProperty("driver");
        Class.forName(driver);
        Connection connection = DriverManager.getConnection(url, user, password);
    );
}

方法对比: 

方法耦合性扩展性代码复杂度适用场景
方法一快速验证
方法二、三、四多数据库兼容场景
方法五企业级项目(推荐)

个人还是推荐方法五,因为便于代码以后扩展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值