当前位置: 首页 > news >正文

【MySQL】MySQL中JDBC编程——MySQL驱动包安装——(超详解)

前言:

🌟🌟本期讲解Java中JDBC编程,希望能帮到屏幕前的你。

🌈上期博客在这里:【MySQL】MySQL索引与事务的透析——(超详解)-CSDN博客

🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客

​ 

目录

📚️1.引言 

 📚️2.JDBC编程环境配置

2.1JDBC编程由来

2.2驱动包环境配置

         1.进入中央仓库

2.搜索mysql

3.选择适配版本

4.点击jar,然后进行下载

 5.找到下载的文件,并进行复制

6.进入idea,新建目录,并复制jar

7.将lib目录设置成库

📚️3.JDBC编程大致流程

3.1建立数据源

3.2和数据库服务器建立连接

3.3构造sql语句 

3.4发送sql给服务器

 3.5关闭连接释放资源

📚️4.实现增删查改

4.1插入数据

4.2删除操作

4.3修改数据

4.4查看数据

📚️5.总结

​ 

📚️1.引言 

    Hello啊家人们~~~ 小编上期讲解了关于MySQL中的索引与事务,相信大家对这部分数据库知识有了更进一步的了解,那么接下来,小编将详细讲解关于JDBC编程,以及如何安装环境,大家准备好了吗,发车咯~~~🥳🥳🥳;

且听小编讲解,包你学会!!!

 📚️2.JDBC编程环境配置

2.1JDBC编程由来

        在数据库编程中,要有数据库服务器提供一些API(应用程序编程接口)供程序员使用,但是我们之前介绍的各种数据库:Oracle  MySQlL  SQL server等等,这些提供的API都不相同,那么我们此时的学习成本就会变高;

      此时JAVA就提供了一套规范的API,各个数据库提供的API都要和JAVA对接上,那么此时就有了JDBC编程,那么就需要一个类似于转换器一样的东西,来连接java和数据库两方,即MySQL驱动包~~~

2.2驱动包环境配置

要想在程序中操作MySQL,就需要MySQL驱动包,并将驱动包导入到项目中去;

1.进入中央仓库

在浏览器上搜索:中央仓库,或者网址:https://mvnrepository.com;

图片展示:

注意:如果进不去,那么就要使用watt toolkit进行网页加速;

2.搜索mysql

可以看到有以下两个驱动包:

注意:此时要使用第二个驱动包,并点击;

3.选择适配版本

点击驱动包后,要点击进入与你当前MySQL适配的版本,小编这里的MySQL版本是5.开头的,所以选择的驱动包版本也是要5开头的。

图片如下:

4.点击jar,然后进行下载

 5.找到下载的文件,并进行复制

6.进入idea,新建目录,并复制jar

此时就将驱动包成功导入了;

7.将lib目录设置成库

鼠标指向lib并右击鼠标,找到add as library,并点击此时就可以开心写代码啦~~~;

📚️3.JDBC编程大致流程

首先我们要在数据库先建立一个表,这里小编就不再展示,如何建立了,前几期有讲;

3.1建立数据源

代码如下:

//建立数据源DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("642364");

       这里的DataSource就是数据源,描述数据库服务器所在的位置,这里使用向下转型是为了低耦合,因为MysqlDataSource是来自于mysql的驱动包,但是每个数据库的驱动包是不一样的,防止在使用其他数据库时,要改很多bug;

注意:

在url代表的是网络资源位置,即给JDBC操作mysql使用的

127.0.0.1:代表的是IP地址,是一台主机在网络上的位置,这是一个特殊的地址即(回环IP),自己给自己发送信息;

java109:是小编在数据库中创建的库;

?characterEncoding=utf8&useSSL=false:问号是代表后面的的一系列参数,&是代表参数之间不同的分割符,useSSL代表否加密,一般为false;

找到服务器位置后,还要进行认证;

3.2和数据库服务器建立连接

代码如下:

//和数据库服务器建立连接  后序才有请求和响应交互Connection connection=dataSource.getConnection();

这里会抛出异常

处理异常:

public static void main(String[] args) throws SQLException {

注意:建立数据库服务器的连接之后才能进行进行请求——响应交互,这里还要处理编译时异常;

3.3构造sql语句 

在前面准备工作做好之后,就能构造sql语句了;

代码如下:

 String sql="insert into student values(1,'孙悟空') ";//进行预处理PreparedStatement statement=connection.prepareStatement(sql);

这里的sql语句其实和,mysql操作的代码方式是一样的; 

注意:

sql语句下面代码,代表的是预处理,是为了检查sql语句是否有啥问题,解析完成后就会得到一个结构化数据,再将这个结构化数据给数据库服务器,这样服务就省下了解析这部分工作; 

3.4发送sql给服务器

代码如下:

 //把SQL发送给服务器int n=statement.executeUpdate();//影响的行数System.out.println("n="+n);

注意:这里用executeUpdate()方法使用于插入,删除,修改操作,这里的n代表的是sql执行影响的行数;

 3.5关闭连接释放资源

代码如下:

 //最后释放资源,最后获取的资源先释放statement.close();connection.close();

因为程序通过代码和数据库服务器建立连接是要消耗一定的硬盘/软件资源

注意:在写资源的释放时,先获取的资源后释放,后获取的资源后释放;

📚️4.实现增删查改

在上述的过程实现后,我们就要对这个模板进行修改;

4.1插入数据

在第3步构造sql语句时,写入插入数据的sql执行语句;

代码如下:

String sql="insert into student values(1,'孙悟空') ";

此时点击运行后得到n=1,代表此时影响的数据为一行;

此时在mysql中输入“select * from student”;这里的student是小编在数据库中建立的表;

mysql> select * from student;
+------+-----------+
| id   | name      |
+------+-----------+
|    1 | 孙悟空    |
+------+-----------+
1 row in set (0.00 sec)

那么就可以看到此时,在表中我们已经在idea上写的插入的数据,那么我吗可以发现,如果这么写,就已经将代码写死了,那么我们就可以引入Scanner函数;

代码如下:

 Scanner sc=new Scanner(System.in);System.out.println("输入id");int id=sc.nextInt();System.out.println("输入名字");String name=sc.next();.
.
.
String sql="insert into student values(?,?) ";
//进行预处理
PreparedStatement statement=connection.prepareStatement(sql);
statement.setInt(1,id);
statement.setString(2,name);

此时我们自主输入我们想要插入的数据时,就要通过statement中的函数setInt或者setString方法,

注意:

要根据插入的类型,编写出不同的方法; 

在方法后的数字代表第几个问号,再后面就是列名(这里的问号代表占位符);

4.2删除操作

 和插入操作基本一致,但是不用自己进行输入id等,所以就只修改sql语句即可;

代码如下:

String sql="delete from student where id=1

 此时我们运行后,在次在mysql查询表;

mysql> select * from student;
Empty set (0.00 sec)

此时可以发现数据库表中的数据被删除了~~~

4.3修改数据

这里和上述的删除操作也差不多,都是修改sql执行语句就可以了;

我们在执行修改之前看一下mysql数据库中的表:

mysql> select * from student;
+------+-----------+
| id   | name      |
+------+-----------+
|    1 | 孙悟空    |
|    1 | 孙悟空    |
|    1 | 孙悟空    |
|    1 | 孙悟空    |
+------+-----------+

此时我们在idea中进行修改操作 

代码如下:

String sql="update student set name='猪八戒' where id=1";

那么现在我们再次打开数据库进行查看:

mysql> select * from student;
+------+-----------+
| id   | name      |
+------+-----------+
|    1 | 猪八戒    |
|    1 | 猪八戒    |
|    1 | 猪八戒    |
|    1 | 猪八戒    |
+------+-----------+

4.4查看数据

注意这里的查看数据就和之前的就不一样了,且听小编进行分析一下;

我们在构造sql语句时,代码如下:

 //构造sqlString sql="select * from student";PreparedStatement statement=connection.prepareStatement(sql);

此时的sql语句就不一样了

之后我们就不能使用:

int n=statement.executeUpdate();//影响的行数

来进行影响的行数,我们要重新使用另一个方法,来进行结果集合的遍历,那么如何拿到结果集合呢?此时就要用另一个方法;

//表示查询的结果集合,后面就根据其进行遍历
ResultSet resultSet=statement.executeQuery();

这样我们就拿到了结果集合,然后我们就要对其进行遍历,代码如下:

//进行遍历while (resultSet.next()){int id=resultSet.getInt("id");String name=resultSet.getString("name");System.out.println("id="+id+"  "+"name="+name);}

注意:在遍历时通过结果集合进行遍历,整型就用getInt方法,而字符串就使用getString方法;最后进行输出打印即可;

最后进行资源释放:

//释放资源
resultSet.close();
statement.close();
connection.close();

测试:

我们先查看我们数据库的表中数据

mysql> select * from student;
+------+-----------+
| id   | name      |
+------+-----------+
|    1 | 猪八戒    |
|    1 | 猪八戒    |
|    1 | 猪八戒    |
|    1 | 猪八戒    |
+------+-----------+

在JAVA中进行查看数据,运行程序结果如下:

id=1  name=猪八戒
id=1  name=猪八戒
id=1  name=猪八戒
id=1  name=猪八戒Process finished with exit code 0

那么我们可以看到在JAVA中输出了我们表中的数据信息。

📚️5.总结

💬💬小编本期讲解了关于如何在JAVA中配置JDBC编程环境,和JAVA和MySQL数据库建立联系,JDBC编程的固定套路,最后通过数据库和idea的代码展示了如何操作表的增删查改~~~

代码地址在这里:JDBC: JDBC编程,csdn实例代码 (gitee.com)

 🌅🌅🌅~~~~最后希望与诸君共勉,共同进步!!!

 


💪💪💪以上就是本期内容了, 感兴趣的话,就关注小编吧。

                                                                 😊😊  期待你的关注~~~


http://www.mrgr.cn/news/28785.html

相关文章:

  • 搜维尔科技:Manus VR数据手套集成,遥操作五指灵巧手解决方案
  • 艾体宝方案丨制造业BI解决方案:推动智能生产和数字化转型
  • AGI自学分享,简单有用的理论与实践
  • python共享全局变量的方案
  • 图片的鱼眼批量矫正算法
  • 【3D Slicer】的小白入门使用指南四
  • 系统架构-面向对象
  • 富文本编辑器wangEdittor使用入门
  • DFS:深搜+回溯+剪枝实战解决OJ问题
  • 通信工程学习:什么是EPON以太网无源光网络
  • 【计网】从零开始使用TCP进行socket编程 --- 客户端与服务端的通信实现
  • 数据结构之外部排序
  • HTTP协议分析(实验报告)
  • DP子序列问题
  • Git提交类型
  • SpringBoot2:web开发常用功能实现及原理解析-整合EasyExcel实现Excel导入导出功能
  • 揭秘MyBatis延迟加载:优化SQL查询与提升性能的利器
  • python绘制月亮
  • 如何申请正高级职称
  • 有机水果蔬菜检测系统源码分享
  • 车型展示+接驳体验!苏州金龙海格客车闪耀汉诺威商用车展
  • C++掉血迷宫
  • pdf去水印怎么去掉免费?6个pdf去除水印的方法快码住,超级好用!
  • 2024/9/16 dataloader、tensorboard、transform
  • 反向传播(Back Propagation,简称BP)
  • CleanClip vs 传统剪贴板:究竟谁更胜一筹?