前言:
🌟🌟本期讲解Java中JDBC编程,希望能帮到屏幕前的你。
🌈上期博客在这里:【MySQL】MySQL索引与事务的透析——(超详解)-CSDN博客
🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客
📚️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语句时,代码如下:
//构造sql
String 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)
🌅🌅🌅~~~~最后希望与诸君共勉,共同进步!!!
💪💪💪以上就是本期内容了, 感兴趣的话,就关注小编吧。
** 😊😊 期待你的关注~~~**
版权归原作者 GGBondlctrl 所有, 如有侵权,请联系我们删除。