MySQL JDBC连接与操作

一、JDBC连接步骤

重点:JDBC六部曲

  • 注册驱动
  • 获取链接
  • 获取数据库操作对象
  • 执行SQL语句
  • 处理查询结果集
  • 释放资源

mysql jdbc url具体参数全解

MySQL的 JDBC URL格式:

jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai;
/**
* 添加mysql-connectio…xxxx.jar到项目的构建路径中来
* 加载驱动到虚拟机;指定联结有关的参数;通过`DriverManager.getConnection`得到一个链接对象
* 提供`url` `user` `password` 等字符串
* 返回连接结果
*/
public class ConnectionTest {
    public static void main(String[] args) throws SQLException {
        // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
        String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
        // 数据库的用户名与密码,需要根据自己的设置
        String user = "root";
        String password = "795200";
        Connection conn = DriverManager.getConnection(url, user, password);
        System.out.println(conn);
    }
}

二、JDBC执行增加

package com.singerw.insert;
//我的第一个JDBC程序

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class InsertTest {
    public static void main(String[] args) throws Exception {
        //1. 注册驱动  //固定写法
        Class.forName("com.mysql.cj.jdbc.Driver");

        //2. 获取链接
        //useUnicode=true&characterEncoding=utf8&&useSSL=true
        String url = "jdbc:mysql://localhost:3306/singerw?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
        String name = "root";
        String password = "795200";
        //2.1. 连接成功,返回数据库对象  connection代表数据库
        Connection connection= DriverManager.getConnection(url,name,password);

        //3. 获取数据库操作对象 statement 专门执行SQL的对象,
        Statement statement = connection.createStatement();

        //4. 执行SQL的对象 去执行SQL   可能存在结果,查看返回结果
        String sql="INSERT INTO `singerw`.`student` (`student_id`, `name`) VALUES (20171650, '许倬倬')";
        int count = statement.executeUpdate(sql);
        System.out.println(count == 1 ? "插入成功" : "插入失败");

        //5. 释放连接
        statement.close();
        connection.close();
    }
}

三、JDBC执行修改和删除

【示例】删除操作

package com.singerw.delete;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
 * @Author: CodeSleep
 * @Date: 2021-06-09 2:40
 * @Description: //TODO 删除操作
 */
public class DeleteTest01 {
    public static void main(String[] args) throws Exception {
        Connection connection = null;
        Statement statement = null;
        //1. 注册驱动  //固定写法
        Class.forName("com.mysql.cj.jdbc.Driver");
      
        //2. 获取链接
        //useUnicode=true&characterEncoding=utf8&&useSSL=true
        String url = "jdbc:mysql://localhost:3306/singerw?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
        String name = "root";
        String password = "795200";

        //3. 获取数据库操作对象 statement 专门执行SQL的对象,
        statement = connection.createStatement();

        //4. 执行SQL的对象 去执行SQL   可能存在结果,查看返回结果
        String sql="DELETE FROM `singerw`.`student` WHERE `student_id` = 222";
        int count = statement.executeUpdate(sql);
        System.out.println(count == 1 ? "删除成功" : "删除失败");

        //5. 释放连接
        statement.close();
        connection.close();
    }
}

【示例】修改操作

package com.singerw.update;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
 * @Author: CodeSleep
 * @Date: 2021-06-09 2:40
 * @Description: //TODO 删除操作
 */
public class UpdateTest01 {
    public static void main(String[] args) throws Exception {
        Connection connection = null;
        Statement statement = null;
        //1. 注册驱动  //固定写法
        Class.forName("com.mysql.cj.jdbc.Driver");
      
        //2. 获取链接
        //useUnicode=true&characterEncoding=utf8&&useSSL=true
        String url = "jdbc:mysql://localhost:3306/singerw?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
        String name = "root";
        String password = "795200";

        //3. 获取数据库操作对象 statement 专门执行SQL的对象,
        statement = connection.createStatement();

        //4. 执行SQL的对象 去执行SQL   可能存在结果,查看返回结果
        String sql="UPDATE `singerw`.`student` SET `name` = '张大大' WHERE `student_id` = 12323";
        int count = statement.executeUpdate(sql);
        System.out.println(count == 1 ? "修改成功" : "修改失败");

        //5. 释放连接
        statement.close();
        connection.close();
    }
}

【示例】从资源文件中读取连接数据库信息

package com.singerw;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.ResourceBundle;

public class Jdbc {
    public static void main(String[] args) throws Exception {
        // 使用资源绑定器绑定属性配置文件
        ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
        String driver = bundle.getString("driver");
        String url = bundle.getString("url");
        String user = bundle.getString("user");
        String password = bundle.getString("password");
      
        Connection connection = null;
        Statement statement = null;
      
        //1. 注册驱动  //固定写法
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2. 获取链接
        connection = DriverManager.getConnection(url, user, password);
        //3. 获取数据库操作对象 statement 专门执行SQL的对象,
        statement = connection.createStatement();

        //4. 执行SQL的对象 去执行SQL   可能存在结果,查看返回结果
        String sql = "INSERT INTO `singerw`.`student` (`student_id`, `name`) VALUES (20171650, '许倬倬')";
        int count = statement.executeUpdate(sql);
        System.out.println(count == 1 ? "插入成功" : "插入失败");

        //5. 释放连接
        statement.close();
        connection.close();
    }
}

四、JDBC执行查询

【示例】查询

package com.singerw.query;
//我的第一个JDBC程序

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class QuerqTest01 {
    public static void main(String[] args) throws Exception {
        //1. 注册驱动  //固定写法
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2. 获取链接
        String url = "jdbc:mysql://localhost:3306/singerw?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
        String name = "root";
        String password = "795200";
        Connection connection = DriverManager.getConnection(url, name, password);

        //3. 获取数据库操作对象 statement 专门执行SQL的对象,
        Statement statement = connection.createStatement();

        //4. 执行SQL的对象 去执行SQL   可能存在结果,查看返回结果
        String sql = "SELECT student_id,name,sex FROM singerw.student where student_id =  20171649";

        //5.处理查询结果集,返回的结果集,结果集中封装了我们全部查询的结果
        ResultSet resultSet = statement.executeQuery(sql);
        while (resultSet.next()) {
            System.out.println("id:" + resultSet.getInt("student_id"));
            System.out.println("name:" + resultSet.getString("name"));
            System.out.println("sex:" + resultSet.getString("sex"));
        }
        //6. 释放连接
        resultSet.close();
        statement.close();
        connection.close();
    }
}
最后修改:2021 年 07 月 28 日 04 : 04 PM
如果觉得我的文章对你有用,请随意赞赏