小工具知识网

当前位置: 首页 > 行业知识 > 【MySQL探索之旅】JDBC (Java连接MySQL数据库)

行业知识

【MySQL探索之旅】JDBC (Java连接MySQL数据库)

2026-11-03 01:04:48 来源:互联网转载

博客主页:爱敲代码的小杨.

✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》

❤️感谢大家点赞收藏⭐评论✍,您的三连就是我持续更新的动力❤️

小杨水平有限,欢迎各位大佬指点,相互学习进步!


小杨近些在学习人工智能方面的知识,发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

文章目录

  • 1. JDBC 的概念
    • 1.1 JDBC 的概念
    • 1.2 JDBC 的本质
    • 1.3 JDBC 的好处
    • 2. JDBC 的使用
      • 2.1 编写代码的步骤
      • 3. JDBC 常用类和接口
        • 3.1 JDBC API
        • 3.2 Connection
        • 3.3 Statement

          1. JDBC 的概念

          1.1 JDBC 的概念

          JDBC : 就是使用 Java 语言操作关系型数据库的一套 API

          JDBC 全称:( Java DataBase Connectivity ) Java 数据库连接

          我们开发的同一套Java代码是无法操作不同的关系型数据库,因为每一个关系型数据库的底层实现细节都不一样。如果这样,问题就很大了,在公司中可以在开发阶段使用的是MySQL数据库,而上线时公司最终选用oracle数据库,我们就需要对代码进行大批量修改,这显然并不是我们想看到的。我们要做到的是同一套Java代码操作不同的关系型数据库,而此时sun公司就指定了一套标准接口(JDBC),JDBC中定义了所有操作关系型数据库的规则。众所周知接口是无法直接使用的,我们需要使用接口的实现类,而这套实现类(称之为:驱动)就由各自的数据库厂商给出。

          1.2 JDBC 的本质

          • 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口
          • 各个数据库厂商去实现这套接口,提供数据库驱动 jar包
          • 我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动 jar 包中的实现类

            1.3 JDBC 的好处

            • 各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发
            • 可随时替换底层数据库,访问数据库的Java代码基本不变

              以后编写操作数据库的代码只需要面向JDBC(接口),操作哪儿个关系型数据库就需要导入该数据库的驱动包,如需要操作MySQL数据库,就需要再项目中导入MySQL数据库的驱动包。(关注文末的公众号回复:MySQL即可获取驱动包)

              2. JDBC 的使用

              Java 操作数据库的流程

              2.1 编写代码的步骤

              1. 创建工程, 导入驱动 jar 包

              添加库

              1. 创建数据源(DataSource)
              // 1. 创建数据源(DataSource)DataSource dataSource = new MysqlDataSource();((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/你的数据名?characterEncoding=utf8&useSSL=false");((MysqlDataSource) dataSource).setUser("你的用户名");((MysqlDataSource) dataSource).setPassword("你的密码");
              1. 连接数据库服务器
              // 2. 连接数据库服务器Connection connection = dataSource.getConnection();
              1. 构造操作数据库的 SQL 语句
              System.out.println("请输入id");int id = input.nextInt();System.out.println("请输入姓名");String name = input.next();;String sql = "insert into 你的表名 values (?,?)"; // sql语句PreparedStatement preparedStatement = connection.prepareStatement(sql);  // 构造 "语句对象"preparedStatement.setInt(1, id);preparedStatement.setString(2, name);
              1. 执行 SQL 语句
              int n = preparedStatement.executeUpdate();System.out.println("n = " + n);
              1. 释放资源
              preparedStatement.close();connection.close();

              案例

              import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.Scanner;public class JDBCDemo {    public static void main(String[] args) throws SQLException {        Scanner input = new Scanner(System.in);        // 1. 创建数据源(DataSource)        DataSource dataSource = new MysqlDataSource();        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java111?characterEncoding=utf8&useSSL=false");        ((MysqlDataSource) dataSource).setUser("root");        ((MysqlDataSource) dataSource).setPassword("1234");        // 2. 连接数据库服务器        Connection connection = dataSource.getConnection();        // 3. 构造操作数据库的 SQL 语句        System.out.println("请输入id");        int id = input.nextInt();        System.out.println("请输入姓名");        String name = input.next();;        String sql = "insert into test values (?,?)";        PreparedStatement preparedStatement = connection.prepareStatement(sql);  // 构造 "语句对象"        preparedStatement.setInt(1, id);        preparedStatement.setString(2, name);        // 4. 执行 SQL语句        int n = preparedStatement.executeUpdate();        System.out.println("n = " + n);        // 5. 释放资源        preparedStatement.close();        connection.close();    }}

              运行结果:

              3. JDBC 常用类和接口

              3.1 JDBC API

              在Java JDBC编程中对数据库的操作均使用JDK自带的API统一处理,通常与特定数据库的驱动类是完全解耦的。所以掌握 Java JDBC API (位于 java.sql 包下) 即可掌握 Java 数据库编程。

              3.2 Connection

              Connection接口实现类由数据库提供,获取 Connection对象通常有两种方式:

              1. 一种是通过 DriverManager(驱动管理类)的静态方法获取:
              // 加载 JDBC 驱动程序Class.forName("com.mysql.jdbc.Driver");// 创建数据库连接Connection connection = DriverManager.getConnection(url);
              1. 一种是通过 DataSource(数据源)对象获取。实际应用中会使用 DataSource对象。
              DataSource dataSource = new MysqlDataSource();((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java111?characterEncoding=utf8&useSSL=false");((MysqlDataSource) dataSource).setUser("root");((MysqlDataSource) dataSource).setPassword("1234");

              区别:

              1. DriverManager类来获取的 Connection 连接,是无法重复利用的,每次使用完以后释放资源时,通过 connection.close()都是关闭物理连接。
              2. DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些连接是可以复用的,每次使用完数据库连接,释放资源调用 connection.close()都是将 Conncetion连接对象回收。

              3.3 Statement

              Statement对象主要是将SQL语句发送到数据库中。JDBC API中主要提供了三种Statement对象。

              实际开发中最常用的是 PreparedStatement对象

              总结:

              主要掌握两种执行 SQL 的方法:

              1. executeQuery() 方法执行后返回单个结果集的,通常用于 select语句
              2. executeUpdate()方法返回值是一个整数,指示受影响的行数,通常用于update、insert、delete语句

上一篇:SystemUI下拉通知菜单栏定时自动隐藏

下一篇:app服务器ip怎么查询?