spring框架学习之路(二)-进阶技能(1)-数据库连接池和事务管理
来源:互联网 发布:淘宝有店铺怎么登陆 编辑:程序博客网 时间:2024/06/07 02:57
1.定义Spring的数据库连接池
<context:property-placeholder location="classpath:db.properties"/> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${db_driver}"></property> <property name="jdbcUrl" value="${db_url}"></property> <property name="user" value="${db_username}"></property> <property name="initialPoolSize" value="${db_init_connections}"></property> <property name="maxPoolSize" value="${db_max_connection}"></property> <property name="password" value="${db_password}"></property> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean>
——–在其中db.properties文件中配置数据库的链接信息, (注意导入响应的数据库驱动包以及c3p0包)
JdbcTemplate类相当于一个BaseDao的代理类
db.properties文件格式:db_driver=com.mysql.jdbc.Driverdb_url=jdbc:mysql://localhost/testdb_init_connections=30db_max_connection=60db_username=rootdb_password=123
在main方法中直接getBean获取JdbcTemplate类对象,即可使用!
**
2.spring事务的处理
首先声明事务管理器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean>
1)基于注解
—-在目标方法上添加注解
@Transactional[(propagation=Propagation.REQUIRED,readOnly=true,timeout=20000)]
—-让事务声明注解生效
<tx:annotation-driven transaction-manager="transactionManager">
2)基于XML文件
不需要添加注解
<tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes><tx:method name="buss*" propagation="REQUIRED"/> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="insert*" propagation="REQUIRED"/> <tx:method name="find" propagation="REQUIRED"/></tx:attributes> </tx:advice> <aop:config> <aop:pointcut expression="execution(* com.neusoft..*(..))" id="txPoint"/> <aop:advisor advice-ref="transactionAdvice" pointcut-ref="txPoint"/> </aop:config>
附录:
propagation事务传播
1)REQUIRED_NEW:生成新的事务,如果存在之前的事务,之前的事务挂起
2)REQUIRED:如果当前存在事务,就是加入,如果没有创建
3)SUPPORTS:如果有事务加入,那么以非事务的方式运行
阅读全文
0 0
- spring框架学习之路(二)-进阶技能(1)-数据库连接池和事务管理
- spring框架学习之路(二)-进阶技能(2)-邮件发送
- spring框架学习之路(二)-进阶技能(3)-定时器任务
- Spring框架学习【数据源和数据库连接池配置】
- 学习Spring的事务管理(二)
- 【Spring学习】之 事务管理
- java web学习(进阶篇)八 Spring中的事务管理
- Spring框架学习笔记----事务管理
- Spring事务管理(二)
- Spring框架学习(14):Spring的事务管理
- 自定义框架之连接池和事务管理
- Spring事务管理与数据库连接
- Spring事务管理与数据库连接
- Python打怪升级之路(二)学习技能
- spring之事务管理1
- Spring 学习笔记之事务管理
- Spring学习之事务管理基础
- 【Hibernate框架学习】:Hibernate进阶之Hibernate核心接口和类(二)
- C++格式化输出
- 使用脚本配置JAVA Tomcat临时环境变量
- spark学习-30-spark2.2.0的SparkContext初始化
- 微信公众号----多次请求,状态码(40001)
- ajax跨域post提交json字符串报错Request header field Content-Type is not allowed by Access-Control-Allow-Header
- spring框架学习之路(二)-进阶技能(1)-数据库连接池和事务管理
- U盘中毒解决方法
- install gcc 6.3.0
- [053]python 递归实现list元素随机组合
- Android 开发之编写可读代码
- 程序员就是这样聊天把女朋友聊没的。。。
- 有前途的程序员的14个习惯,你有几个?
- JS——统计字符串中出现次数最多的字符
- 字符集&字符编码