當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring 事务基于注解和xml方式
生活随笔
收集整理的這篇文章主要介紹了
Spring 事务基于注解和xml方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 基于注解方式的Spring事務配置
- 1 創建表結構
- 2 創建實體類
- 3 創建Dao
- 4 創建DaoImpl
- 5 創建Service
- 6 創建SrviceImpl
- 7 創建TxConfig
- 8 創建Test
- 基于xml方式Spring事務配置
- 1 創建表結構
- 2 創建實體類
- 3 創建Dao
- 4 創建DaoImpl
- 5 創建Service
- 6 創建ServiceImpl
- 7 beans.xml
- 8 創建Test
基于注解方式的Spring事務配置
1 創建表結構
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0;-- ---------------------------- -- Table structure for account -- ---------------------------- DROP TABLE IF EXISTS `account`; CREATE TABLE `account` (`id` int NOT NULL,`name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,`money` int DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;-- ---------------------------- -- Records of account -- ---------------------------- BEGIN; INSERT INTO `account` VALUES (1, 'lucy', 1000); INSERT INTO `account` VALUES (2, 'mary', 1000); COMMIT;SET FOREIGN_KEY_CHECKS = 1;2 創建實體類
package com.ccb.po;public class Account {private Integer id;private String name;private Integer money;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getMoney() {return money;}public void setMoney(Integer money) {this.money = money;} }3 創建Dao
package com.ccb.dao;public interface AccountDao {void addMoney();void minusMoney(); }4 創建DaoImpl
package com.ccb.dao.impl;import com.ccb.dao.AccountDao; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository;import javax.annotation.Resource;@Repository("accountDaoImpl") public class AccountDaoImpl implements AccountDao {@Resourceprivate JdbcTemplate jdbcTemplate;@Overridepublic void addMoney() {String sql = "update account set money = money+? where name = ?";jdbcTemplate.update(sql,100,"mary");}@Overridepublic void minusMoney() {String sql = "update account set money = money-? where name = ?";jdbcTemplate.update(sql,100,"lucy");} }5 創建Service
package com.ccb.service;public interface AccountService {void accountMoney();void addMoney();void minusMoney(); }6 創建SrviceImpl
package com.ccb.service.impl;import com.ccb.dao.UserDao; import com.ccb.po.User; import com.ccb.service.UserService; import org.springframework.stereotype.Service;import javax.annotation.Resource; import java.util.List;@Service public class UserServiceImpl implements UserService {@Resourceprivate UserDao userDao;@Overridepublic void addUser(User user) {userDao.addUser(user);}@Overridepublic void updateUser(User user) {userDao.updateUser(user);}@Overridepublic void deleteUser(User user) {userDao.deleteUser(user);}@Overridepublic User getUser(User user) {return userDao.getUser(user);}@Overridepublic List<User> getListUser() {return userDao.getListUser();}@Overridepublic void batchAddUser(List<Object[]> objects) {userDao.batchAddUser(objects);}@Overridepublic void batchUpdateUser(List<Object[]> objects) {userDao.batchUpdate(objects);}@Overridepublic void batchDeleteUser(List<Object[]> objects) {userDao.batchDeleteUser(objects);} }7 創建TxConfig
package com.ccb.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;@ComponentScan(basePackages = "com.ccb") //開啟組件掃描 @Configuration //配置類 @EnableTransactionManagement //開啟事務 public class TxConfig {//創建數據庫連接池@Beanpublic DruidDataSource getDruidDataSource(){DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");dataSource.setUrl("jdbc:mysql://192.168.1.4:3306/db_user");dataSource.setUsername("root");dataSource.setPassword("root");return dataSource;}//創建JdbcTemplate@Beanpublic JdbcTemplate getJdbcTemplate(DataSource dataSource){//到ioc容器中根據類型找到DataSourceJdbcTemplate jdbcTemplate = new JdbcTemplate();//注入dataSourcejdbcTemplate.setDataSource(dataSource);return jdbcTemplate;}//創建事務管理器@Beanpublic DataSourceTransactionManager getDataSourceTransactionManager(DataSource dataSource){DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dataSource);transactionManager.setDataSource(dataSource);return transactionManager;} }8 創建Test
package com.ccb.user;import com.ccb.config.TxConfig; import com.ccb.po.User; import com.ccb.service.AccountService; import com.ccb.service.UserService; import com.ccb.service.impl.AccountServiceImpl; import com.ccb.service.impl.UserServiceImpl; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import java.util.ArrayList; import java.util.List;public class UserTest {@Testpublic void testTxConfig(){ApplicationContext applicationContext = new AnnotationConfigApplicationContext(TxConfig.class);AccountService accountService = applicationContext.getBean("accountServiceImpl", AccountService.class);accountService.accountMoney();} }基于xml方式Spring事務配置
1 創建表結構
同上注解方式
2 創建實體類
同上注解方式
3 創建Dao
同上注解方式
4 創建DaoImpl
同上注解方式
5 創建Service
同上注解方式
6 創建ServiceImpl
同上注解方式
7 beans.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"><context:component-scan base-package="com.ccb"></context:component-scan><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"><property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property><property name="url" value="jdbc:mysql://192.168.1.4:3306/db_user"></property><property name="username" value="root"></property><property name="password" value="root"></property></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><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>8 創建Test
package com.ccb.user;import com.ccb.config.TxConfig; import com.ccb.po.User; import com.ccb.service.AccountService; import com.ccb.service.UserService; import com.ccb.service.impl.AccountServiceImpl; import com.ccb.service.impl.UserServiceImpl; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import java.util.ArrayList; import java.util.List;public class UserTest {@Testpublic void testTx(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");AccountService accountService = applicationContext.getBean("accountServiceImpl", AccountService.class);accountService.accountMoney();} }文章目錄
- 基于注解方式的Spring事務配置
- 1 創建表結構
- 2 創建實體類
- 3 創建Dao
- 4 創建DaoImpl
- 5 創建Service
- 6 創建SrviceImpl
- 7 創建TxConfig
- 8 創建Test
- 基于xml方式Spring事務配置
- 1 創建表結構
- 2 創建實體類
- 3 創建Dao
- 4 創建DaoImpl
- 5 創建Service
- 6 創建ServiceImpl
- 7 beans.xml
- 8 創建Test
總結
以上是生活随笔為你收集整理的Spring 事务基于注解和xml方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10 Redis 主从复制
- 下一篇: 1 Zookeeper安装