【MySQL】JDBC编程 (Java的数据库编程:JDBC 导入驱动包 MySQL Connector Java 编写JDBC代码 插入操作 查询操作)

news/2024/10/30 19:36:14/

文章目录

  • Java的数据库编程:JDBC
  • 导入驱动包
    • MySQL Connector Java
  • 编写JDBC代码
    • 插入操作
    • 查询操作


Java的数据库编程:JDBC

真正在工作中操作数据库,99.9%都是通过代码来操作,很少会手动在客户端里输入sql语句.各种数据库,MySQL,Oracle,SQL Server 在开发的时候,就会提供一组编程接口(API)Application Programming Interface.

API:大概意思就是给你一个软件,你能使用代码对他进行操作,基于他给你提供的这些功能,就可以写一些其他代码.对于程序来说API往往就是以"函数""类"的形式来提供的.不同的的数据库提供的API不同,程序员学习的成本就高了,Java就提出了接口规范,各厂商实现对应API,这就是JDBC.

在这里插入图片描述
如果我们想要进行数据库开发就需要在项目中导入对应数据库的驱动包,才能编写代码.
在这里插入图片描述

导入驱动包

1.创建一个项目

在这里插入图片描述

2.获取驱动包:

驱动包是数据库厂商提供的.我们可以从:
(1)mysql的官方网站获取.
(2)github.
(3)还maven的中央仓库,中央仓库可以理解为服务器,它上面就托管了各种软件包.maven就相当于应用商店,通过应用商店就可以访问到软件包然后下载下来.
在这里插入图片描述
在这里插入图片描述

MySQL Connector Java

MySQL Connector/J is a JDBC Type 4 driver, which means that it is pure Java implementation of the MySQL protocol and does not rely on the MySQL client libraries. This driver supports auto-registration with the Driver Manager, standardized validity checks, categorized SQLExceptions, support for large update counts, support for local and offset date-time variants from the java.time package, support for JDBC-4.x XML processing, support for per connection client information and support for the NCHAR, NVARCHAR …
在这里插入图片描述

使用的版本大版本要和数据库服务器匹配.我的数据库服务器是8.0的,所以我就用8.0系列.
在这里插入图片描述
在这里插入图片描述

找到匹配的驱动包然后点进去然后下载:
在这里插入图片描述
下载完成如下:

在这里插入图片描述
jar包: 是java发布程序的典型方式,java是通过.java源文件编译成.class文件,jvm来解释执行.class,所以我们要想发布一个程序给别人使用,只需要把程序.class文件拷贝给对方让他用他的jvm来解释执行就可以了.但是每个.java都一 一对应一个.class,如果代码里.java非常多,我们就把一大堆的.class打成压缩包(类似于.rar .zip),我们这块的压缩包就是.jar.此时把jar拷贝给对方,对方就可以使用jvm来运行了.

此处,mysql驱动包的这个jar不是单独运行的jar,我们可以把它导入到咱们的项目,然后就可以调用其中的方法和类来实现编程了.

3.导入驱动包

  1. 创建一个新的目录:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 把这个目录标记成项目的库:

在这里插入图片描述
Add as Library 就是把这样的目录标记成库,idea就能识别这个目录里的jar包,从而就可以调用里面的类来写代码了.

编写JDBC代码

插入操作

3.编写JDBC代码需要下面的五个步骤:

  1. 创建并初始化一个数据源.
 //1.创建并初始化一个数据源
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");
//setURl()这个方法子类有,父类没有,想使用就得把父类引用转回子类引用.
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("123456");

通过DataSourse接口来描述数据源.
setURl()这个方法子类有,父类没有,想使用就得把父类引用转回子类引用.
URL是计算机里面的常见术语,叫做唯一资源定位符,描述网络上的某个资源所在的位置.
在这里插入图片描述

2.和数据库服务器建立连接.

Connection connection = dataSource.getConnection();

在这里插入图片描述

3.构造 SQL 语句.

String sql = "insert into student value(1,'张三')";
PreparedStatement statement = connection.prepareStatement(sql);

在这里插入图片描述

即使咱们使用代码来构建数据库,还是靠sql语句,只不过换成用代码来构建sql,前面的sql的各种语法仍然有效.

在这里插入图片描述

4.执行 SQL 语句.

//4.执行 SQL 语句
int ret = statement.executeUpdate();
System.out.println("ret = " + ret);

在这里插入图片描述

5.释放必要的资源.

//5. 释放必要的资源
statement.close();
connection.close();
//后创建的先释放

数据库客户端和服务器之间进行通信的时候,会消耗一定的系统资源(包括不限于CPU,内存,硬盘,宽带),对于服务器来说同一时刻要处理很多个客户端,需要消耗很多资源,此时客户端就应该省着点用资源即不用资源的时候就赶紧释放.

public class JDBCInset {public static void main(String[] args) throws SQLException {Scanner scanner = new Scanner(System.in);//JDBC 需要以下步骤来完成开发.//1.创建并初始化一个数据源DataSource dataSource = new MysqlDataSource();((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");//setURl()这个方法子类有,父类没有,想使用就得把父类引用转回子类引用.((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("123456");//2.和数据库服务器建立连接Connection connection = dataSource.getConnection();//3.从控制塔读取用户的输入内容System.out.println("请输入学生姓名:");String name = scanner.next();System.out.println("请输入学号:");int id = scanner.nextInt();//4.构造 SQL 语句String sql = "insert into student value(?,?)";PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1,id);statement.setString(2,name);//这个打印需要加到拼接数据之后System.out.println(statement);//5.执行 SQL 语句int ret = statement.executeUpdate();System.out.println("ret = " + ret);//6. 释放必要的资源statement.close();connection.close();}
}

DataSourse内置了数据库连接池(字符串常量池),可以复用连接,提高连接服务器的效率.

查询操作

查询来说,返回结果不是单纯的int了,而是ResultSet对象.

public class JDBCSelect {public static void main(String[] args) throws SQLException {//1.创建并初始化数据源DataSource dataSource = new MysqlDataSource();((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("123456");//2.建立连接Connection connection = dataSource.getConnection();//3.构造SQLString sql = "select * from student";PreparedStatement statement = connection.prepareStatement(sql);//4.执行SQLResultSet resultSet = statement.executeQuery();//5.遍历结果集合while (resultSet.next()){//把resultSet想象成一个表格,同时表格这里有个光标,初始情况下光标指向表的最上面.//每次调用next光标往下走一行  当光标把整个表遍历完next返回false//当光标指向某一行的时候,就可以通过getXXX来获取当前行的数据int id = resultSet.getInt("id");String name = resultSet.getString("name");System.out.println("id = "+ id + ", name = " + name);}//6.释放资源resultSet.close();//查询结果的临时表statement.close();connection.close();}
}

http://www.ppmy.cn/news/280427.html

相关文章

U盘工具量产过程

一、确定芯片主控及芯片型号 1、查找主控用U盘检测工具芯片精灵或芯片无忧 芯片精灵下载地址: http://www.upantool.com/test/xinpian/2011/ChipGenius_V4.html 芯片无忧下载地址: http://www.upantool.com/test/ChipEasy.html 2、运行芯片精灵(检测更准确&#xf…

一款很好用的网络U盘

http://u.115.com/invite/993aa5be Hi~,我最近使用了115网络U盘,邀请你一起加入体验~ 115网络U盘很好用哦,我的几个好友已经在上面注册了。我们可以相互分享文件、文档、照片、音乐,3G 的永久空间、5G 的临时空间,还可…

自己动手做一个绿色便携版的谷歌浏览器Chrome,可以放入U盘随意带走的

鉴于很多浏览器流氓而且广告又太多,所以无法自拔的用上了谷歌浏览器,但是经常的换电脑又无法保存自己的浏览器使用习惯和收藏数据,这个时候就想到有绿色的版的谷歌浏览器,但是找了很多网上的资源,软件,都不太满意,所以想自己做一个绿色版的谷歌浏览器,那么经过一个下午的努力,成…

U盘数据恢复工具哪个好?

U盘是目前最为常用的数据存储设备之一,用户可以通过U盘将数据随身携带或是在不同设备之间传输数据。存储在U盘中的数据一般都比较重要,如果数据不小心丢失了,会给用户造成很多麻烦和损失。 U盘数据丢失是非常常见的数据问题之一,…

Microsoft SQL Server 2019 详细安装教程

文章目录 系列文章目录前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 一、SqlServer2019安装步骤 双击运行好的setup.exe 选择安装,点击第一个全新独立安装 默认点击下一步 勾选介绍,点击下一步 点击下一步 点击下一步 勾选需要…

【Python入门篇】——Python函数(函数介绍,函数的定义,函数的参数和函数的返回值)

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句…

操作系统 第三章 3.1 错题整理

装入时,相应的地址要修改 若存放的位置从150开始 则所有的地址都加150 加完后的地址是物理地址 不能改变 可变分区:产生的外部碎片需要紧凑 C D 都是执行时才进行地址的变换的 该共享段直接在内存中 不用调入调出 供多个进程共享 II 假设该进程很小 页面…

云渲染对学生党有哪些好处和挑战?

云渲染是一种依托于云计算的云端服务,用户将本地任务提交到远程服务器,由远程的计算机集群资源进行运算操作,将上传的任务进行云端渲染后再返回本地。云渲染的优势是可以节省本地设备的性能和时间,提高渲染效率和质量。那么&#…