【MySQL】JDBC编程
作者:mmseoamin日期:2023-12-05

作者主页:paper jie_博客

本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。

本文录入于《MySQL》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将MySQL基础知识一网打尽,希望可以帮到读者们哦。

其他专栏:《算法详解》《C语言》《javaSE》《数据结构》等

内容分享:本期将会分享Java的JDBC编程

目录

JDBC是什么

JDBC的工作原理

JDBC的使用

准备数据库驱动包

将驱动包添加到项目中

正式使用

1. 创建数据源

2. 连接数据库服务器

3. 构造sql语句

4. 将构造的sql语句传送给服务器执行

5. 将资源释放

最终代码


JDBC是什么

 JDBC即java数据库连接. 是一种用于执行SQL语句的Java API, 它是Java中的数据坤连接的规范.这个API由java.sql.*,javax.sql.*包中的一些类和接口组成的,它为Java开发人员操作数据库提供了一个标准的API,可以为多种数据库提供统一访问. 如: MySQL提供了Java的驱动包mysql-connector-java, 需要基于Java操作MySQL需要使用该驱动包.  

JDBC的工作原理

JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包含一些通用的接口类 ,JDBC的优势:

java访问数据库操作就是完全面向抽象接口编程的

开发数据库应用不用限定在特定的数据库厂商的API

程序的可移植性高

【MySQL】JDBC编程,第1张

JDBC的使用

准备数据库驱动包

MySQL驱动包我们可以去mvnrepository.com 这个地址里下载到本地:

在索引上搜MySQL,我们点击第二个.

【MySQL】JDBC编程,第2张

进去后,会有多个版本,这里都是可以用的,这里我们使用49版.

【MySQL】JDBC编程,第3张

点击下载.

【MySQL】JDBC编程,第4张

将驱动包添加到项目中

在我们的项目中创建一个文件夹,可以命名为lib,再将驱动包mysql-connector-java-5.1.49.jar复制到lib中.这个包是不用解压的,我们可以通过Java来将里面的接口和类引入进来:

创建lib文件:

【MySQL】JDBC编程,第5张

将驱动包复制过来,直接ctrl+v

【MySQL】JDBC编程,第6张

将包配置进项目中:

【MySQL】JDBC编程,第7张

正式使用

这里我们在main方法内使用

1. 创建数据源

jdbc:mysql://127.0.0.1:3306/data?characterEncoding=utf8&useSSL=false 这一长串可以理解为让java知道数据库在哪里位置,这个每个人的地址都是不一样的,因人而异

//1. 创建数据源 数据源里提供了数据库在哪里,用户名,密码
        DataSource dataSource = new MysqlDataSource();
        //数据库位置
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/data?characterEncoding=utf8&useSSL=false");
        //用户名
        ((MysqlDataSource) dataSource).setUser("root");
        //密码
        ((MysqlDataSource) dataSource).setPassword("123456");

2. 连接数据库服务器

这里就好比要建立一个java与mysql传送操作的通道:

//2. 连接数据库服务器
Connection connection = dataSource.getConnection();

3. 构造sql语句

这里用String来构造sal语句,再构造后要注意将sql语句转换为语句对象. 

        //3. 构造sql语句
        String sql = "insert into course values(11, '物理')";
        //需要将sql语句转换为语句对象
        PreparedStatement statement = connection.prepareStatement(sql);

这里有两个接口可以将sql语句转换,PreparedStatement, Statement. PrepareStatement是预处理后的结果,而Statement是没有预处理的,所以我们使用PrepareStatement

4. 将构造的sql语句传送给服务器执行

这里有两个方法可以使用,executeUpdate和executQuery,第一个得到的是执行sql的次数,第二个是结果集合

        //4. 将构造好的sql传送给服务器执行
        //得到的是执行sql的次数
        int n = statement.executeUpdate();
        //得到的是执行sql的结果集
        statement.executeQuery();

5. 将资源释放

释放资源是从后往前释放:

        //5. 将资源释放
        statement.close();
        statement.close();

最终代码

public class Test {
    public static void main(String[] args) throws SQLException {
        //1. 创建数据源 数据源里提供了数据库在哪里,用户名,密码
        DataSource dataSource = new MysqlDataSource();
        //数据库位置
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/data?characterEncoding=utf8&useSSL=false");
        //用户名
        ((MysqlDataSource) dataSource).setUser("root");
        //密码
        ((MysqlDataSource) dataSource).setPassword("123456");
        //2. 连接数据库服务器
        Connection connection = dataSource.getConnection();
        //3. 构造sql语句
        String sql = "insert into course values(15, '物理')";
        //需要将sql语句转换为语句对象
        PreparedStatement statement = connection.prepareStatement(sql);
        //4. 将构造好的sql传送给服务器执行
        //得到的是执行sql的次数
        int n = statement.executeUpdate();
        //得到的是执行sql的结果集
       // statement.executeQuery();
        //5. 将资源释放
        statement.close();
        statement.close();
    }
}

总结

1. 获取数据源

2. 创建连接通道

3. 构造sql语句

4. 将sql传送给服务器执行

5. 释放资源