本篇内容主要讲解“JDBC Template如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JDBC Template如何使用”吧!Spring
为开发者提供了JDBCTemplate
,可以简化很多数据库操作相关的代码,本文主要介绍JDBCTemplate
的使用以及事务管理功能。配置的话主要配置以下几项:数据源:org.springframework.jdbc.datasource.DriverManager.DataSource
数据库驱动:com.cj.mysql.jdbc.Driver
,这里采用的是MySQL 8
,注意MySQL 5.7
以下的驱动名字不同,另外若是其他数据库请对应修改数据库URL
:jdbc:mysql://localhost:3306/test
,MySQL
默认的3306
端口,数据库test
数据库用户名数据库密码JDBC
模板:org.springframework.jdbc.core.jdbcTemplate
参考配置如下:int update(String sql,Object args[])
:增/删/改操作,使用args
设置其中的参数,返回更新的行数List
:查询操作,rowMapper
将结果集映射到用户自定义的类中首先导入依赖:MySQL
的版本请根据个人需要更改,或使用其他数据库的驱动。完整配置文件如下:添加@Repository
以及@RequiredArgsConstructor
:因为直接使用@Autowired
的话会提示不推荐:所以利用了Lombok
的注解@RequiredArgsConstructor
,效果相当如下构造方法,只不过是简化了一点:测试之前先建表:测试类:输出:如果出现异常或插入不成功等其他情况,请检查SQL
语句是 香港云主机否编写正确,包括表名以及字段名。Spring
中的事务管理有两种方法:编程式事务管理:代码中显式调用beginTransaction
、commit
、rollback
等就是编程式事务管理声明式事务管理:通过AOP
实现,不需要通过编程方式管理事务,因此不需要再业务逻辑代码中掺杂事务处理的代码,开发更加简单,便于后期维护下面先来看一下编程式事务管理的实现。编程式事务管理的配置又有两种方法:基于底层API
基于TransactionTemplate
需要的依赖如下:根据PlatformTransactionManager
、TransactionDefinition
、TransactionStatus
几个核心接口,通过编程方式进行事务管理,首先配置事务管理器:接着修改数据库访问类:TransactionDefinition
是事务定义,是一个接口:主要定义了:事务隔离级别事务传播行为事务超时时间是否为只读事务而DefaultTransactionDefinition
就是上面属性的一些默认配置,比如:也就是定义了:传播行为为0
:也就是常量PROPAGATION_REQUIREDE
,表示如果当前存在一个事务,则加入当前事务,如果不存在任何事务,就创建一个新事务隔离级别为-1
:这个也是TransactionDefinition
的默认参数,表示使用数据库的默认隔离级别,通常情况下为Read Committed
超时为-1
:默认设置不超时,如需要设置超时请调用setTimeout
方法,比如如果设置为了60
,那么相当于如果操作时间超过了60s
,而且后面还涉及到CRUD
操作,那么会抛出超时异常并回滚,如果超时操作的后面没有涉及到CRUD
操作,那么不会回滚只读事务为false
:默认为false
,但是该变量不是表明“不能”进行修改等操作,而是一种暗示,如果不包含修改操作,那么JDBC
驱动和数据库就有可能针对该事务进行一些特定的优化具体执行流程如下:定义事务:实例类为DefaultTransactionDefinition
开启事务:通过getTransaction(TransactionDefinition)
开启执行业务方法根据业务方法是否出现异常手动调用DataSourceTransaction
的commit(TransactionStatus)
进行提交出现异常调用rollback(TransactionStatus)
进行回滚测试如下:步骤:通过调用TransactionTemplate
的execute
实现execute
接受一个TransactionCallback
接口参数TransactionCallback
定义了一个doInTransaction
方法通常以匿名内部类的方式实现TransactionCallback
接口,在其中的doInTransaction
编写业务逻辑代码doInTransaction
有一个TransactionStatus
的参数,可以调用setRollbackOnly
进行回滚默认的回滚规则如下:如果抛出未检查异常或者手动调用setRollbackOnly
,则回滚如果执行完成或抛出检查异常,则提交事务示例如下,首先编写配置文件对Bean
进行注入:其次修改数据访问类,添加一个测试方法:大部分代码与第一个例子类似就不解释了,结果也是因为主键重复出现异常,造成事务回滚:Spring
声明式事务管理通过AOP
实现,本质是在方法前后进行拦截,在目标方法开始之前创建或加入一个事务,执行目标方法完成之后根据执行情况提交或回滚事务。相比起编程式事务管理,声明式最大的优点就是不需要通过编程的方式管理事务,业务逻辑代码无需混杂事务代码,但是唯一不足的地方就是最细粒度只能作用到方法上,而不能做到代码块级别。实现方式有如下两种:基于XML
实现基于@Transactional
实现Spring
提供了tx
命令空间来配置事务::配置事务通知,一般需要指定
id
以及transaction-manager
:配置多个
指定执行事务的细节完整配置文件如下:测试方法如下:运行结果:可以看到提示主键重复了。@Transactional
一般作用于类上,使得该类所有public
方法都具有该类型的事务属性。下面创建一个示例。将上一个例子中的
以及注释掉,同时添加:测试方法与上一个例子一致,结果也是如此:到此,相信大家对“JDBC Template如何使用”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
这篇文章主要讲解了“scala条件控制与循环怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“scala条件控制与循环怎么实现”吧!一、条件判断 if在scala中,if条件判断是有返回值的,就是if或者e…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。