自我学习SSM框架集成
Posted mr-bing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自我学习SSM框架集成相关的知识,希望对你有一定的参考价值。
关于事务管理
对于数据库的增删改查有时候要求两件事只能同时发生或者同时不发生,这时候就要使用事务管理
做事务管理需要额外的jar才行,所以先下载aspectjweaver.jar,并添加至Idea中。
然后再用以下两种方法进行实现
SSM事务管理的实现(一)
通过XML配置方式:修改applicationContext,以支持AOP方式
<!-- <tx:annotation-driven transaction-manager="transactionManager"/> --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <tx:advice id="txadvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="del*" propagation="REQUIRED" rollback-for="Exception"/> <tx:method name="edit*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/> <tx:method name="list*" propagation="REQUIRED" rollback-for="Exception"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="serviceMethod" expression="execution(* com.how2java.service.*.*(..))"/> <aop:advisor pointcut-ref="serviceMethod" advice-ref="txadvice"/> </aop:config>
"execution(* com.how2java.service.*.*(..))"
这个意思是对于service文件夹下的所有文件夹的所有类方法来搜索txadvice中提到的方法 然后进行捆绑回滚
、
SSM事务管理的实现(二)
一、修改applicationContext添加
<tx:annotation-driven transaction-manager="transactionManager"/> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean>
二、对为addTwo方法加上事务注解
@Service public class CategoryServiceImpl implements CategoryService{ @Autowired CategoryMapper categoryMapper; public List<Category> list(){ return categoryMapper.list(); } public void deleteAll() { List<Category> cs = list(); for (Category c : cs) { categoryMapper.delete(c.getId()); } } @Override @Transactional(propagation=Propagation.REQUIRED,rollbackForClassName="Exception") public void addTwo() { Category c1 = new Category(); c1.setName("短的名字"); categoryMapper.add(c1); Category c2 = new Category(); c2.setName("名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,"); categoryMapper.add(c2); }; }
以上是关于自我学习SSM框架集成的主要内容,如果未能解决你的问题,请参考以下文章
集成代码生成器 单表 多表 树形表 一对多 springmvc spring mybatis SSM 后台框架