当前位置: 首页 > news >正文

陕西做网站公司有哪些/百度推广网站一年多少钱

陕西做网站公司有哪些,百度推广网站一年多少钱,网页设计导航字体大小,怎么看网站室哪做的13、声明式事务 1、回顾事务 把一组业务当成一个业务来做;要么都成功,要么都失败!事务在项目开发中,十分重要,涉及到数据一致性问题,不能马虎!确保完整性和一致性; 事务的ACID原则…

13、声明式事务

1、回顾事务

  • 把一组业务当成一个业务来做;要么都成功,要么都失败!
  • 事务在项目开发中,十分重要,涉及到数据一致性问题,不能马虎!
  • 确保完整性和一致性;

事务的ACID原则:

  • 原子性
  • 一致性
  • 隔离性
    • 多个业务可能操作同一个资源,防止数据损坏
  • 持久性
    • 事务一旦提交,无论系统发生什么问题,结果都不会被影响,被持久化的写到存储器中!

将之前的代码修改一下

  1. 增加两个接口

    //添加一个用户
    public int addUser(User user);//删除一个用于
    public int deleteUser(int id);
    
  2. 在mapper文件中写sql语句(注意这里故意把第二条的sql语句写错)

    <insert id="addUser" parameterType="user">insert into user (id,name,pwd)values (#{id},#{name},#{pwd});
    </insert><delete id="deleteUser" parameterType="_int">deletes from user where id=#{id}
    </delete>
    
  3. 编写实现类

    public class UserMapperImpl extends SqlSessionDaoSupport implements UserMapper{public List<User> selectUser() {User user = new User(5, "小王", "213213");UserMapper mapper = getSqlSession().getMapper(UserMapper.class);mapper.addUser(user);mapper.deleteUser(5);return mapper.selectUser();}public int addUser(User user) {return getSqlSession().getMapper(UserMapper.class).addUser(user);}public int deleteUser(int id) {return getSqlSession().getMapper(UserMapper.class).deleteUser(id);}
    }
    
  4. 测试(测试是肯定会报错的,主要验证是否会执行addUser方法)

    public class MyTest {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserMapper userMapper = context.getBean("userMapper", UserMapper.class);List<User> userList = userMapper.selectUser();for (User user : userList) {System.out.println(user);}}
    }
    

报错:sql异常

结果:插入成功

没有进行事务的管理;我们想让他们都成功才成功,有一个失败,就都失败,我们就应该需要事务!

以前我们都需要自己手动管理事务,十分麻烦!

但是Spring给我们提供了事务管理,我们只需要配置即可;

13.1、spring中的事务管理

  • 声明式事务:AOP
  • 编程式事务:需要在代码中进行事物的管理

在这里使用的是声明式事务,实现的方式是AOP

  1. 在spring配置文件中导入约束

    xmlns:tx="http://www.springframework.org/schema/tx"
    http://www.springframework.org/schema/tx
    https://www.springframework.org/schema/tx/spring-tx.xsd"
    
  2. 开启 Spring 的事务处理功能

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/>
    </bean>
    
  3. 配置事务通知

    <!--结合AOP 实现事务的织入-->
    <!--配置事务的通知-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager"><!--给哪些方法配置事务--><!--配置事务的传播特性--><tx:attributes><tx:method name="add" propagation="REQUIRED"/><tx:method name="delete" propagation="REQUIRED"/><tx:method name="update" propagation="REQUIRED"/><tx:method name="query" read-only="true"/><tx:method name="*"  propagation="REQUIRED"/></tx:attributes>
    </tx:advice>
    
  4. 配置AOP织入事务

    <aop:config><aop:pointcut id="txPointCut" expression="execution(* com.kuang.mapper.*.*(..))"/><aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
    </aop:config>
    
  5. 删掉刚插入的数据,再次测试

    public class MyTest {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserMapper userMapper = context.getBean("userMapper", UserMapper.class);List<User> userList = userMapper.selectUser();for (User user : userList) {System.out.println(user);}}
    }
    

思考:

为什么需要事务?

  • 如果不配置事务,可能存在数据提交不一致的情况;
  • 如果我们不在Spring中去配置声明式事务,我们就需要在代码中手动配置事务!
  • 事务在项目的开发中十分重要,涉及到数据的一致性和完整性问题,不容马虎
http://www.lbrq.cn/news/962245.html

相关文章:

  • 做网站能用python吗/郑州seo优化哪家好
  • 如何让百度新闻收录网站文章/seo引擎优化服务
  • 企业门户网站建设 北京/线下课程seo
  • 开发网站网络公司/近两年成功的网络营销案例
  • 自助推广平台/广州优化营商环境条例
  • 南京哪些公司做网站/百度推广账号登录入口
  • 免费外贸b2b/宁波如何做seo排名优化
  • 淘宝网站开发源码/seo国外推广软件
  • 宜春市住房和城乡建设局网站/排名
  • 南昌做网站比较好的公司有哪些/微商怎么做推广加好友
  • 郑州做网站云极/磁力bt种子搜索神器
  • 网站开发管理系统有哪些/2345网址导航官网
  • godaddy怎么建设网站/百度登录个人中心
  • 深圳那家做APP网站的最好/营销培训内容有哪些
  • 拿别的公司名字做网站/公司优化是什么意思
  • 网站设计网/企业网络营销推广方案策划
  • 如何做好网络销售技巧/网站seo的内容是什么
  • 网站策划师有前途吗/流量推广怎么做
  • php 微信 网站建设/百度搜索app下载
  • 用阿里云服务器做盗版小说网站吗/wordpress免费建站
  • 重庆网站推广公司电话/常州seo招聘
  • 法院司法公开网站建设情况/搜索引擎排名优化方案
  • 佛山seo/嘉兴seo网络推广
  • wordpress清理缓存/seo网络营销推广公司深圳
  • 做网站的困难/品牌运营策略
  • 中山营销网站建设联系方式/网站seo快速排名
  • 域名申请成功后怎么做网站/长尾关键词挖掘爱站网
  • 建筑网站起名/宁波关键词优化品牌
  • 查询网站有没有备案/seo查询在线
  • wordpress 布局编辑器/优化大师win7
  • 对于编码电机-520直流减速电机
  • 【面试】面试官:请举例回答Elasticsearch的数据模型有哪些核心概念?
  • leetcode:单词接龙[图广搜][无权图找最短路径]
  • ZKmall开源商城架构助力增长:多端流量聚合与用户体验
  • Gradle vs Maven:构建工具世纪对决 —— 像乐高积木与标准模型之间的选择艺术
  • 图机器学习(10)——监督学习中的图神经网络