JDBC,数据库事务,扩展junit依赖知识
什么是JDBC?
Java语言访问数据库的一种规范,是一套API’
JDBC(java Datebase Connectivity)API,即java数据库编程接口,是一组标准的java语言中的接口和类,使用这些接口和类,java客户端程序可以访问各种不同类型的数据库,比如建立数据库链接、执行SQL语句进行数据库的存取操作。
JDBC规范采用接口和实现分离的思想设置了Java数据库编程的框架。接口包含再java.sql和Javax.sql包中,其中java.sql属于javaSE,java.sql属于javaee.这些接口的实现类叫做数据库驱动程序,由数据库的厂商或者其他的厂商或者个人提供。
为了使客户端程序独立于特定的数据驱动程序,JDBC规范建议开发者使用基于接口的编程方式,即尽量使用应用仅依赖java.sql及javax.sql中的接口和类。
Java使用JDBC访问数据库的步骤:
- 得到数据库驱动程序
- 创建数据库链接
- 执行sql语句
- 得到结果集
- 对结构集做相应的处理(增删改查)
- 关闭资源:这里释放的是DB中的资源
需要jar包
- java.sql
- javax.sql
- mysql-conneter-java 必须要导入的一个链接驱动
我们可以再java中创建一个maven项目然后把依赖导入到xml中。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
1.写一个简单的项目测试程序,用来巩固知识。(巩固练习,是给有基础的看,不会的可以看一些更详细的视频教程)
运行结果:
2.其实我们Statement执行语句对象的危险性是非常高,非常容易的就会被黑客Sql注入手段破解
3.PreparedStatement预编译对象
该对象可以通过设置(?,?,?,?)来防止黑客的sql注入(框架中没有什么是加一层解决不了的。)
例子:
数据库中:
4.Statement和Prepared的区别
- Statement是直接插入语句进行操作数据库,Preparend是启用预编译功能,先创建对象存储sql语句然后单独用方法执行sql这样的方法安全性更高,也可以设置? 然后给?赋值,灵活性高。
- 相同处:增删改用void executeUpdate()方法,查用executeQuery()这个方法并且是用Result结果集存储
5.数据库中处理事务
要么成功,要么失败
ACID原则:保证数据的安全。
步骤:
- 开启事务
- 事务提交(commit())
- 事务回滚(roollback())
- 关闭事务
- 转账:A:1000 B:1000 A(900)----100—>B(1100)
我们就来写一下上面的这个一个转账的事务案例(成功 回滚),写之前来扩展一个知识。
6.Junit单元测试
首先要在Maven中导入依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
</dependency>
简单使用扩展:
可以使用其中的@Test注解,只要使用这个注解的方法都可以像main方法一样被运行。
接下来我们就用这个扩展来操作案例
第一步:
第二步:
第三步:运行查看控制台
第四步:如果中途发生错误
第五步:查看运行错误的是否回滚