【SQL】JDBC 对 MySQL 的基本用法

目录

JDBC概述

IDEA下创建JDBC环境

新建 Maven 工程

填写项目所在目录、名称、GroupId、ArtifactId

配置 pom.xml 文件

JDBC 下操作 SQL 的套路

操作 SQL 之前的准备

如何使用代码执行 SQL 

JDBC 下增删改查的完整代码


【SQL】JDBC 对 MySQL 的基本用法_第1张图片

JDBC概述

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

IDEA下创建JDBC环境

❤️新建 Maven 工程

【SQL】JDBC 对 MySQL 的基本用法_第2张图片

❤️填写项目所在目录、名称、GroupId、ArtifactId

【SQL】JDBC 对 MySQL 的基本用法_第3张图片

❤️配置 pom.xml 文件

在此文件中输入以下代码,有部分代码是IDEA自动生成,我们只需要补充,代码补充完成之后,点击右上角更新按钮,IDEA就会开始下载MySQL连接器,有了这个连接器,我们才能通过Java代码链接MySQL服务器

首次配置此文件可能需要较长时间

当External Libraries 下出现了 mysql-connector-java 时,说明配置成功

 【SQL】JDBC 对 MySQL 的基本用法_第4张图片



    4.0.0

    com.hsq
    jdbc-demo
    1.0-SNAPSHOT

    
        1.8
        1.8
    

    
        
            mysql
            mysql-connector-java
            5.1.49
        
    

JDBC 下操作 SQL 的套路

❤️操作 SQL 之前的准备

1. 构造好一个 DataSource 对象

2. 通过 DataSource 得到 Connection 对象

3. 通过 Connection 对象 + SQL 语句,得到 Statement 对象

建议将以下代码封装成一个 DBUtil 类,以便之后使用

有了以下代码就可以正式在 JDBC 下操作 SQL 了

public class DBUtil {
    private static final DataSource dateSource;

    static {
        MysqlDataSource db = new MysqlDataSource();
        db.setServerName("localhost");
        db.setPort(3306);    // MySQL 服务器端口,一般为3306
        db.setUser("root");    // 登录 MySQL 服务器的用户名
        db.setPassword("123456");    // 登录 MySQL 服务器的密码
        db.setDatabaseName("0331_library");    // 设置默认库
        db.setUseSSL(false);
        db.setCharacterEncoding("utf-8"); 
        db.setServerTimezone("Asia/Shanghai");

        dateSource = db;
    }

    public static Connection connection() throws SQLException {
        return dateSource.getConnection();
    }
}

❤️如何使用代码执行 SQL 

在 JDBC 下操作 SQL 有两套固定代码,只需要更换不同的 SQL 语句即可

1. 带结果的 SQL 语句        例如:select

2. 不带结果的 SQL 语句        例如:delect,update,insert

带结果的 SQL 语句

String sql = "要执行的 SQL";

try (Connection c = db.getConnection()) {
    try (PreparedStatement ps = c.prepareStatement(sql)) { 
        try (ResultSet rs = ps.executeQuery()) { 
            while (rs.next()) {
                int i = rs.getInt(1);
                String s = rs.getString(2); 
            }
        }
    }
}

 不带结果的 SQL 语句

String sql = "不带结果的 SQL";

try (Connection c = db.getConnection()) {
    try (PreparedStatement ps = c.prepareStatement(sql)) {
        ps.executeUpdate();
    }
}

 上面这两套代码的主要区别是:

        有结果的代码最后需要一个 ResultSet 对象,执行 ps.executeQuery(),并且需要 while 来得到每一行的结果

        没有结果的代码则直接执行 ps.executeUpdate() 即可

JDBC 下增删改查的完整代码

public class Main {
    public static void main(String[] args) throws SQLException {
        MysqlDataSource db = new MysqlDataSource();
        db.setServerName("localhost");
        db.setPort(3306);
        db.setUser("root");
        db.setPassword("123456");
        db.setDatabaseName("0331_library");
        db.setUseSSL(false);
        db.setCharacterEncoding("utf-8");
        db.setServerTimezone("Asia/Shanghai");


     // 增
     try (Connection c = db.getConnection()) {
         String sql = "insert into readers (name) values ('陈浩')";
         try (PreparedStatement ps = c.prepareStatement(sql)) {
             ps.executeUpdate();
         }
     }

    // 删
     try (Connection c = db.getConnection()) {
         String sql = "delete from readers where rid = 1";
         try (PreparedStatement ps = c.prepareStatement(sql)) {
             ps.executeUpdate();
         }
     } 

   
    // 改
     try (Connection c = db.getConnection()) {
         String sql = "update readers set name = '123' where rid = 1";
         try (PreparedStatement ps = c.prepareStatement(sql)) {
             ps.executeUpdate();
         }
     } 

    // 查
     try (Connection c = db.getConnection()) {
         String sql = "select name from readers where rid = 1";
         try (PreparedStatement ps = c.prepareStatement(sql)) {
             try (ResultSet rs = ps.executeQuery()) {
                where (rs.next) {
                    String name = rs.getString(1);
                }    
             }
         }
     } 
}

你可能感兴趣的:(MySQL,mysql)