Mysql实战之驱动篇

Mysql实战之驱动篇

前言

  1. 从工作开始就一直和MySQL这个老朋友打交道, 说实话一直停留在使用阶段,对其原理的认知也是碎片化的,一直有计划做个整理,最近就让想法付诸实践,所以就有了本篇。

驱动: 计算机软件术语,是指驱动计算机里软件的程序。驱动程序全称设备驱动程序,是添加到操作系统中的特殊程序,其中包含有关硬件设备的信息。此信息能够使计算机与相应的设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。

MySQL驱动

  1. 我们一般都是在pom文件中添加如下依赖, 然后配置账号,密码,Url等就可以执行CRUD了,知道为什么吗?

    <!-- Mysql Connector -->
    <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
    </dependency>
    
  2. 答案解密,就是MySQL驱动帮我们在应用和数据库之间建立了网络连接

Mysql实战之驱动篇_第1张图片
3. 这时候又有问题啦,难道每次使用都要去创建连接吗? 肯定不是啦,要不怎么会有数据库连接池, 比如c3p0, druid, HikariCP等等,又因为用户很多并且一个数据库可能不止为一个应用服务,所以就演变成了下面的架构
Mysql实战之驱动篇_第2张图片
4. 最后重温一下代码实现数据库连接的需求

import com.mysql.cj.jdbc.Driver;

import java.sql.*;

/**
 * Jdbc操作数据库
 *
 * @author: tyvek
 */
public class MySqlDriverClient {
    // 数据库连接URL
    private static final String URL = "jdbc:mysql://127.0" +
            ".0.1:3306/test?useUnicode=true&characterEncoding=utf8" +
            "&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8";
    // 用户名
    private static final String USERNAME = "root";
    // 密码
    private static final String PASSWORD = "root";

    public static void main(String[] args) throws Exception {
        // 预编译Statement
        PreparedStatement ps = null;
        // 结果集
        ResultSet rs = null;
        // 注册驱动
        DriverManager.registerDriver(new Driver());
        // 建立连接
        Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);

        try {
            // 查出一条记录
            String sql = "select user_name from sys_user limit 1";
            // 执行语句
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            // 获取结果
            while (rs.next()) {
                System.out.println(rs.getString(1));
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            // 关闭资源
            if (rs != null) {
                rs.close();
            }
            if (ps != null) {
                ps.close();
            }
            if (conn != null) {
                conn.close();
            }
        }
    }
}

你可能感兴趣的:(java高级,mysql,数据库,java)