技术标签: # Spring
事务ACID原则:
配置事务的代码:
<?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: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.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!--DataSource:使用Spring的数据源替换Mybatis的配置 c3p0 dbcp druid
我们这里使用Spring提供的JDBC:org.springframework.jdbc.datasource-->
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url"
value="jdbc:mysql://127.0.0.1:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<!-- sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="datasource"></property>
<!-- 绑定Mybatis配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<property name="mapperLocations" value="classpath:com/yang/mapper/*.xml"/>
</bean>
<!--SqlSessionTemplate:就是我们使用的sqlSession -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<!-- 只能使用构造器sqlSessionFactory,因为它没有set方法 -->
<constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
</bean>
<!-- 配置声明式事务 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="datasource"></property>
</bean>
<!-- 结合AOP实现事务的织入-->
<!-- 配置事务通知:-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 给哪些方法配置事务 -->
<!-- 配置事务的传播特性:new propagation= -->
<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>
<!-- 配置事务的切入-->
<aop:config>
<aop:pointcut id="txPointCut" expression="execution(* com.yang.mapper.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"></aop:advisor>
</aop:config>
</beans>
UserMapper.xml
<mapper namespace="com.yang.mapper.UserMapper">
<select id="selectUser" resultType="user">
select * from mybatis.user;
</select>
<insert id="addUser" parameterType="user">
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
</insert>
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id=#{id}
</delete>
</mapper>
UserMapperImpl
public List<User> selectUser() {
User user = new User(3, "小王", "2131231");
UserMapper mapper = getSqlSession().getMapper(UserMapper.class);
mapper.addUser(user);
mapper.deleteUser(2);
return mapper.selectUser();
}
思考:
为什么需要事务?
经过上一篇介绍了jpa的用法和原理:这一篇开始整合jpa与spring整合。一.配置applicationContext.xmlxml version="1.0" encoding="UTF-8"?>beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/200_jpa和spring集成
---恢复内容开始---题目来源:https://ac.nowcoder.com/acm/contest/392/J题意:题目描述 月月和华华一起去吃饭了。期间华华有事出去了一会儿,没有带手机。月月出于人类最单纯的好奇心,打开了华华的手机。哇,她看到了一片的QQ推荐好友,似乎华华还没有浏览过。月月顿时醋意大发,出于对好朋友的关心,为了避免华华浪费太多时间和其他网...
16bit的音乐是否是无损需要看它的格式,如果是标准CD的音乐那么它就是无损的,如果是HDCD或者是专业音频,16bit就不一定是无损的。所谓无损音乐指的是没有经过压缩处理的,但是对它的量化却没有严格的标准,很多音乐都可以称为无损,但不是说只要16bit就是无损。16bit音乐是无损吗1、16bit有些是无损的,有些则不是无损的,因为音乐会有很多种格式,有些格式的音乐中16bit就是无损,比如说标..._音频16bit
select into from 和 insert into select 都是用来复制表,阐述了晾着的区别。_select into from 用法
Description 某公司规定,销售人员工资由基本工资和销售提成两部分组成,其中基本工资是1500元/月,销售提成规则如下: 销售额小于等于10000元时,按照5%提成; 销售额大于10000元但小于等于50000元时,超出10000部分按照3%提成; 销售额...
Hi,大家好,这里是丹成学长的毕设系列文章! 对毕设有任何疑问都可以问学长哦!这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定要提前准备,避免到后面措手不及,草草了事。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是地铁大数据客流分析系统学长这里给一个题目综合评分(每项满分5分)难度系数:4分工作量:4分创新点:3分。_python地铁数据分析
集群规划在宿主机上安装 docker,在 docker 上部署 4 个容器,包括 3 个 hadoop 节点和 1 个客户端。使用 mysql 来存放 hive 的 metadata 元数据。宿主机IP: 192.168.109.128docker 网络: 172.18.0.1/24ContainerIPRolehadoop11172.18.0.11NameNode,SecondaryNameNode,ResourceManager,JobHistory,DataNode_docker hadoop:2.9
截至本月31日结束! 新用户开通龙支付:4000积分 消费9笔:36000积分 转账9笔:19000积分 取现9笔:19000积分 交易满500元:60000积分 1.完成消费和满500元的任务 下载“中国建设银行”app登录,点击“龙支付”-“扫一扫”,扫自己的云闪付商户收款码 每次付款60元,共8笔,再付款20元,共1笔,这样刚好完成“消费9笔”...
resultType与parameterType:resultType一般用于查询操作,parameterType一般用于增删改操作。id与接口方法一致resultType和resultMap两者都是用来表示查询结果集和java对象之间的一种关系,将查询结果集按某种关系,映射到java对象。resultType表示的是对象类,不用映射到bean对象属性中,但是结果集中属性要与bean对象..._resultype和parametertype
问题起与这篇知乎:训练到一定epoch之后,突然loss为Nan,其中一种方法说 梯度截断。我觉得我LSTM可能会出现这个问题。https://www.zhihu.com/question/49346370梯度消失(vanishing gradient)与梯度爆炸(exploding gradient)(1)梯度不稳定问题:什么是梯度不稳定问题:深度神经网络中的梯度不稳定性,前面层..._gradient_clipping
这个鸟东西,整起来太费事了,在编译前先下载个VS2008吧,我特么用的VS2012,工程导入不了,最后下载了个08.其中主要参考下面这个链接http://www.distream.org/?p=436注意:1.如果你的系统是64位的,在安装VS前,把64位编译选上,如果忘记了,也没有事,重新打开VS安装程序,添加选中就行了。我一开始没有注意这个,编译出来的动态链接库不能用,编译
babel为js的编译器,可以把es6代码转化成es5代码,从而让浏览器支持let 1.不能变量提升(只针对于let以后的代码,不能控制以前),2.let 是块作用域,3.不能重复声明。const 声明常量,一旦被定义,无法被修改,其他特性与let一样模板字符串:使用tab键上面的反应号··,插入变量时用${变量名}function(obj,…keys){} 可以用…keys代表剩余参数symbol 表示独一无二的值,用来定义私有属性,取值时一定要用[]取值set 函数set.add(),se._es6基础