【MySQL】JDBC编程

作者主页:paper jie_博客****

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

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

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

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

目录

JDBC是什么

JDBC的工作原理

JDBC的使用

准备数据库驱动包

将驱动包添加到项目中

正式使用

[1. 创建数据源](#1. 创建数据源)

[2. 连接数据库服务器](#2. 连接数据库服务器)

[3. 构造sql语句](#3. 构造sql语句)

[4. 将构造的sql语句传送给服务器执行](#4. 将构造的sql语句传送给服务器执行)

[5. 将资源释放](#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

程序的可移植性高

JDBC的使用

准备数据库驱动包

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

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

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

点击下载.

将驱动包添加到项目中

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

创建lib文件:

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

将包配置进项目中:

正式使用

这里我们在main方法内使用

1. 创建数据源

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

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传送操作的通道:

java 复制代码
//2. 连接数据库服务器
Connection connection = dataSource.getConnection();

3. 构造sql语句

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

java 复制代码
        //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的次数,第二个是结果集合

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

5. 将资源释放

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

java 复制代码
        //5. 将资源释放
        statement.close();
        statement.close();

最终代码

java 复制代码
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. 释放资源


相关推荐
Elastic 中国社区官方博客2 小时前
Elasticsearch:使用 Agent Builder 的 A2A 实现 - 开发者的圣诞颂歌
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
2301_816660212 小时前
PHP怎么处理Eloquent Attribute Inference属性推断_Laravel从数据自动推导类型【操作】
jvm·数据库·python
qq_372154233 小时前
Go 中自定义类型与基础类型的显式转换规则详解
jvm·数据库·python
_下雨天.4 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
LiAo_1996_Y4 小时前
CSS如何实现文字渐变效果_通过background-clip实现艺术字
jvm·数据库·python
2401_887724504 小时前
CSS如何让表单在手机端友好展示_利用Flexbox实现堆叠排版
jvm·数据库·python
数据库小组4 小时前
MySQL 删库后怎么恢复?binlog2sql 之外,NineData 还能做什么
数据库·sql·mysql·安全·数据·ninedata·删库
zhangchaoxies4 小时前
Layui轮播图(carousel)怎么设置自动播放间隔
jvm·数据库·python
切糕师学AI5 小时前
HBase:一文搞懂分布式宽列数据库(原理 + 架构 + 实战)
数据库·分布式·nosql·hbase·分布式宽列数据库·wide column db
competes5 小时前
慈善基金投资底层逻辑应用 顶层代码低代码配置平台开发结构方式数据存储模块
java·开发语言·数据库·windows·sql