简单复习JDBC,数据库事务,扩展junit依赖知识

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访问数据库的步骤:

  1. 得到数据库驱动程序
  2. 创建数据库链接
  3. 执行sql语句
  4. 得到结果集
  5. 对结构集做相应的处理(增删改查)
  6. 关闭资源:这里释放的是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.写一个简单的项目测试程序,用来巩固知识。(巩固练习,是给有基础的看,不会的可以看一些更详细的视频教程)

简单复习JDBC,数据库事务,扩展junit依赖知识
运行结果:
简单复习JDBC,数据库事务,扩展junit依赖知识

2.其实我们Statement执行语句对象的危险性是非常高,非常容易的就会被黑客Sql注入手段破解




3.PreparedStatement预编译对象
该对象可以通过设置(?,?,?,?)来防止黑客的sql注入(框架中没有什么是加一层解决不了的。)
例子:

简单复习JDBC,数据库事务,扩展junit依赖知识
简单复习JDBC,数据库事务,扩展junit依赖知识
数据库中:
简单复习JDBC,数据库事务,扩展junit依赖知识

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方法一样被运行。

简单复习JDBC,数据库事务,扩展junit依赖知识

接下来我们就用这个扩展来操作案例

第一步:简单复习JDBC,数据库事务,扩展junit依赖知识
第二步:
简单复习JDBC,数据库事务,扩展junit依赖知识

第三步:运行查看控制台
简单复习JDBC,数据库事务,扩展junit依赖知识
第四步:如果中途发生错误
简单复习JDBC,数据库事务,扩展junit依赖知识
第五步:查看运行错误的是否回滚
简单复习JDBC,数据库事务,扩展junit依赖知识

总结:如果事务中途发生错误会进行回滚数据转账不会发生变化。

上一篇:eclipse如何导入Junit


下一篇:Maven简单引入