好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Spring框架JdbcTemplate数据库事务管理完全注解方式

Spring JdbcTemplate事务注解

配置类方式配置

在之前的操作中,相关的配置还是写在了 xml 配置文件中。现在,使用配置类的方式进行配置。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<? xml version = "1.0" encoding = "UTF-8" ?>

< beans xmlns = "http://HdhCmsTestspringframework.org/schema/beans"

        xmlns:xsi = "http://HdhCmsTestw3.org/2001/XMLSchema-instance"

        xmlns:context = "http://HdhCmsTestspringframework.org/schema/context"

        xmlns:aop = "http://HdhCmsTestspringframework.org/schema/aop"

        xmlns:tx = "http://HdhCmsTestspringframework.org/schema/tx"

        xsi:schemaLocation="http://HdhCmsTestspringframework.org/schema/beans http://HdhCmsTestspringframework.org/schema/beans/spring-beans.xsd

                            http://HdhCmsTestspringframework.org/schema/context http://HdhCmsTestspringframework.org/schema/context/spring-context.xsd

                            http://HdhCmsTestspringframework.org/schema/aop http://HdhCmsTestspringframework.org/schema/aop/spring-aop.xsd

                            http://HdhCmsTestspringframework.org/schema/tx http://HdhCmsTestspringframework.org/schema/tx/spring-tx.xsd">

     < context:component-scan base-package = "com.pingguo.spring5" ></ context:component-scan >

     <!--引入外部属性文件-->

     < context:property-placeholder location = "classpath:jdbc.properties" />

     <!--配置连接池-->

     < bean id = "dataSource" class = "com.alibaba.druid.pool.DruidDataSource" >

         < property name = "driverClassName" value = "${prop.driverClass}" ></ property >

         < property name = "url" value = "${prop.url}" ></ property >

         < property name = "username" value = "${prop.username}" ></ property >

         < property name = "password" value = "${prop.password}" ></ property >

     </ bean >

     < bean id = "jdbcTemplate" class = "org.springframework.jdbc.core.JdbcTemplate" >

         <!--注入datasource-->

         < property name = "dataSource" ref = "dataSource" ></ property >

     </ bean >

     < bean id = "transactionManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" >

         <!--注入数据源-->

         < property name = "dataSource" ref = "dataSource" ></ property >

     </ bean >

     <!--开启事务注释-->

     < tx:annotation-driven transaction-manager = "transactionManager" ></ tx:annotation-driven >

</ beans >

完全注解方式

一、创建配置类

把 xml 里的配置在配置类里用注解方式实现。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

package com.pingguo.spring5.config;

import com.alibaba.druid.pool.DruidDataSource;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.Configuration;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.sql.DataSource;

@Configuration   // 声明配置类

@ComponentScan (basePackages = "com.pingguo.spring5" )  // 开启注解扫描

@EnableTransactionManagement   // 开启事务

public class TxConfig {

     // 创建数据库连接池

     @Bean

     public DruidDataSource getDruidDataSource() {

         DruidDataSource druidDataSource = new DruidDataSource();

         druidDataSource.setDriverClassName( "com.mysql.jdbc.Driver" );

         druidDataSource.setUrl( "jdbc:mysql://223.31.222.111:3306/shop" );

         druidDataSource.setUsername( "root" );

         druidDataSource.setPassword( "123456" );

         return druidDataSource;

     }

     // 创建 JdbcTemplate 对象

     @Bean

     public JdbcTemplate getJdbcTemplate(DataSource dataSource) {

         JdbcTemplate jdbcTemplate = new JdbcTemplate();

         // 注入 dataSource

         jdbcTemplate.setDataSource(dataSource);

         return jdbcTemplate;

     }

     // 创建事务管理器的对象

     @Bean

     public DataSourceTransactionManager getDataSourceTransactionManager(DataSource dataSource) {

         DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();

         transactionManager.setDataSource(dataSource);

         return transactionManager;

     }

}

二、测试注解方式的事务管理

修改下测试方法,使用 AnnotationConfigApplicationContext 来读取配置类。

?

1

2

3

4

5

6

7

8

9

public class TestTrans {

     @Test

     public void testJdbc() {

         ApplicationContext context =

                 new AnnotationConfigApplicationContext(TxConfig. class );

         UserService userService = context.getBean( "userService" , UserService. class );

         userService.accountMoney();

     }

}

执行一下:

?

1

2

3

八月 08, 2021 8:49:35 上午 com.alibaba.druid.pool.DruidDataSource info

信息: {dataSource-1} inited

Process finished with exit code 0

查看数据表数据的修改情况。

成功。

以上就是Spring框架JdbcTemplate数据库事务管理完全注解方式的详细内容,更多关于Spring JdbcTemplate事务注解的资料请关注其它相关文章!

原文链接:https://blog.csdn.net/wessonlan/article/details/124812977

查看更多关于Spring框架JdbcTemplate数据库事务管理完全注解方式的详细内容...

  阅读:14次