- 浏览: 181822 次
- 性别:
- 来自: 青岛
文章分类
- 全部博客 (117)
- java基础知识 (17)
- 技术积攒 (9)
- Oracle技术 (4)
- JSP技术 (6)
- Spring技术 (15)
- Linux技术 (6)
- Hibernate技术 (24)
- JPA技术 (1)
- Struts技术 (1)
- Struts2技术 (6)
- javascript知识 (4)
- myeclipse 使用技巧 (3)
- JavaEE技术 (2)
- JSTL (1)
- javamail技术 (1)
- jaf 技术 (1)
- 测试方法 (1)
- web技术积攒 (1)
- tomcat事项 (5)
- mysql使用 (1)
- 趣味题目 (2)
- 技术词汇 (1)
- EJB3.0 (2)
- weblogic 使用说明 (1)
- CSS (1)
最新评论
-
chenhao_java:
知识点五:依赖注入-自动装配依赖对象 -
黑白配:
为什么没有看见三个附件呢?
JavaMail jsp发送邮件 html格式 -
chunchong:
真晕,这样怎么能行呢
JAVA中防止SQL注入攻击类的源代码 -
Rod_johnson:
学习了!真不错
Hibernate:类继承的实现方式(二)--父子类各自一个表 -
erchong2011:
恩 很不错 学习了 简单
jsp页面自动跳转方式
spring2.5的事物管理,分为两种方式,一是基于注解方式的,而是基于配置文件方式的
一。基于注解方式
一。基于xml配置方式
配置文件
一。基于注解方式
import java.util.List; import javax.sql.DataSource; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.mingbai.bean.StudentBean; import com.mingbai.service.StudentService; //将此业务类交由spring的事务管理,这时此方法的某个方法在执行前就开启事务,结束后提交事务 @Transactional public class StudentServiceImpl implements StudentService { private JdbcTemplate jdbcTemplate; public void setDataSource(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } /* public void delete(Integer sid) { jdbcTemplate.update("delete from student where id=?", new Object[]{sid}, new int[]{java.sql.Types.INTEGER}); throw new RuntimeException("我是异常"); }*/ /* @Transactional(rollbackFor=Exception.class) public void delete(Integer sid) throws Exception { jdbcTemplate.update("delete from student where id=?", new Object[]{sid}, new int[]{java.sql.Types.INTEGER}); throw new Exception("我是异常"); }*/ @Transactional(noRollbackFor=RuntimeException.class) public void delete(Integer sid) throws Exception { jdbcTemplate.update("delete from student where id=?", new Object[]{sid}, new int[]{java.sql.Types.INTEGER}); throw new RuntimeException("我是运行期异常");//运行期例外(unchecked exception)事务默认回滚 } @Transactional(propagation=Propagation.NOT_SUPPORTED) public List<StudentBean> getAllStudent() { return jdbcTemplate.query("select * from student", new StudentRowMapper()); } public StudentBean getStudent(Integer sid) { StudentBean sb = (StudentBean)jdbcTemplate.queryForObject("select * from student where id=?", new Object[]{sid}, new int[]{java.sql.Types.INTEGER}, new StudentRowMapper()); return sb; } public void save(StudentBean student) { jdbcTemplate.update("insert into student(name,password) values(?,?)", new Object[]{student.getName(),student.getPassword()}, new int[]{java.sql.Types.VARCHAR,java.sql.Types.VARCHAR}); } public void update(StudentBean student) { jdbcTemplate.update("update student set name=? where id=?", new Object[]{student.getName(),5}, new int[]{java.sql.Types.VARCHAR,java.sql.Types.INTEGER}); } } 数据库链接信息放在类路径的文件jdbc.properties中driverClassName=org.gjt.mm.mysql.Driver url=jdbc\:mysql\://localhost\:3306/test username=root password= initialSize=1 maxActive=500 maxIdle=2 minIdle=1
此时的配置文件需要注明采用注解方式
<?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-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <context:property-placeholder location="classpath:jdbc.properties"/><!-- 属性文件,占位符 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driverClassName}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> <!-- 连接池启动时的初始值 --> <property name="initialSize" value="${initialSize}"/> <!-- 连接池的最大值 --> <property name="maxActive" value="${maxActive}"/> <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 --> <property name="maxIdle" value="${maxIdle}"/> <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --> <property name="minIdle" value="${minIdle}"/> </bean> <!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="org.gjt.mm.mysql.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value=""/> <property name="initialSize" value="1"/> <property name="maxActive" value="500"/> <property name="maxIdle" value="1"/> <property name="minIdle" value="1"/> </bean> --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 采用注解事务方式--> <tx:annotation-driven transaction-manager="txManager"/> <bean id="studentService" class="com.mingbai.service.impl.StudentServiceImpl"> <property name="dataSource" ref="dataSource"></property> </bean> </beans>
一。基于xml配置方式
import java.util.List; import javax.sql.DataSource; import org.springframework.jdbc.core.JdbcTemplate; import com.mingbai.bean.StudentBean; import com.mingbai.service.StudentService; public class StudentServiceImpl2 implements StudentService { private JdbcTemplate jdbcTemplate; public void setDataSource(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } public void delete(Integer sid) throws Exception { jdbcTemplate.update("delete from student where id=?", new Object[]{sid}, new int[]{java.sql.Types.INTEGER}); throw new RuntimeException("我是运行期异常");//运行期例外(unchecked exception)事务默认回滚 } public List<StudentBean> getAllStudent() { return jdbcTemplate.query("select * from student", new StudentRowMapper()); } public StudentBean getStudent(Integer sid) { StudentBean sb = (StudentBean)jdbcTemplate.queryForObject("select * from student where id=?", new Object[]{sid}, new int[]{java.sql.Types.INTEGER}, new StudentRowMapper()); return sb; } public void save(StudentBean student) { jdbcTemplate.update("insert into student(name,password) values(?,?)", new Object[]{student.getName(),student.getPassword()}, new int[]{java.sql.Types.VARCHAR,java.sql.Types.VARCHAR}); } public void update(StudentBean student) { jdbcTemplate.update("update student set name=? where id=?", new Object[]{student.getName(),5}, new int[]{java.sql.Types.VARCHAR,java.sql.Types.INTEGER}); } }
配置文件
<?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-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="org.gjt.mm.mysql.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value=""/> <property name="initialSize" value="1"/> <property name="maxActive" value="500"/> <property name="maxIdle" value="1"/> <property name="minIdle" value="1"/> </bean> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 采用基于xml方式 --> <tx:advice id="txadvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true" propagation="NOT_SUPPORTED"/> <tx:method name="*" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="transactionPointcut" expression="execution(* com.mingbai.service..*.*(..))"/> <aop:advisor advice-ref="txadvice" pointcut-ref="transactionPointcut"/> </aop:config> <bean id="studentService" class="com.mingbai.service.impl.StudentServiceImpl"> <property name="dataSource" ref="dataSource"></property> </bean> </beans>
发表评论
-
Spring 声明式事物管理详解
2010-03-01 09:54 963Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我 ... -
spring注解详解
2010-03-01 09:18 41581.准备工作 (1)导入common- ... -
Hibernate+Spring彻底搞定Clob、Blob的存取
2009-09-10 10:26 963Hibernate+Spring彻底搞定Clob、Blob的存 ... -
Spring Jms入门实例
2009-09-08 11:13 3608Spring JMS Spring框架提供了一 ... -
spring事务传播属性
2009-08-03 10:04 1423事务的传播行为和隔离级别[transaction behavi ... -
知识点八-2 :spring 2.5 事务属性
2009-06-02 16:04 2204spring事务的属性 1• ... -
Spring AOP
2009-06-01 16:12 1907AOP中的概念 Aspect(切面):指横切性关注点的抽象即 ... -
知识点七:Spring AOP技术
2009-05-27 14:42 1444Spring提供了两种切面使用方式,实际工作中我们可以选用其中 ... -
知识点六:自动扫描方式把组件纳入(注册到)spring容器中管理
2009-05-27 10:56 877前面我们都是使用XML的b ... -
知识点五:依赖注入-自动装配依赖对象
2009-05-27 10:42 1117对于自动装配,了解一下就可以,实际应用中并不被推荐使用。例子: ... -
知识点四:依赖注入-使用Field注入(用于注解方式)
2009-05-27 10:15 2040注入依赖对象可以采用 ... -
知识点三:Bean的初始化方法和销毁方法
2009-05-27 09:59 13551 在容器中注册的bean到 ... -
知识点二:详解Spring中bean的作用域
2009-05-27 09:55 747如何使用spring的作用域: <bea ... -
知识点一:spring之实例化bean
2009-05-27 09:17 1644最基本的: Xml代码 & ...
相关推荐
赠送jar包:spring-messaging-4.3.12.RELEASE.jar; 赠送原API文档:spring-messaging-4.3.12.RELEASE-javadoc.jar; 赠送源代码:spring-messaging-4.3.12.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-...
Spring Boot技术知识点:Spring Boot2.7以上支持使用Swagger3
Maven坐标:com.alibaba.spring:spring-context-support:1.0.10; 标签:spring、alibaba、context、support、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览...
5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):...
案例8:Spring整合Spring MVC与Hibernate + EasyUI实现电子商城后台订单管理.docx案例8:Spring整合Spring MVC与Hibernate + EasyUI实现电子商城后台订单管理.docx案例8:Spring整合Spring MVC与Hibernate + EasyUI...
案例8:Spring整合Spring MVC与Hibernate + EasyUI实现电子商城后台订单管理.pdf案例8:Spring整合Spring MVC与Hibernate + EasyUI实现电子商城后台订单管理.pdf案例8:Spring整合Spring MVC与Hibernate + EasyUI...
赠送jar包:spring-aop-5.0.10.RELEASE.jar; 赠送原API文档:spring-aop-5.0.10.RELEASE-javadoc.jar; 赠送源代码:spring-aop-5.0.10.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-aop-5.0.10.RELEASE....
赠送jar包:spring-security-core-5.3.9.RELEASE.jar; 赠送原API文档:spring-security-core-5.3.9.RELEASE-javadoc.jar; 赠送源代码:spring-security-core-5.3.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-beans-5.2.0.RELEASE.jar; 赠送原API文档:spring-beans-5.2.0.RELEASE-javadoc.jar; 赠送源代码:spring-beans-5.2.0.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-beans-5.2.0....
Spring集成MongoDB官方指定jar包:spring-data-mongodb-1.4.1.RELEASE.jar
赠送jar包:spring-beans-5.0.10.RELEASE.jar; 赠送原API文档:spring-beans-5.0.10.RELEASE-javadoc.jar; 赠送源代码:spring-beans-5.0.10.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-beans-5.0.10....
赠送jar包:spring-boot-configuration-processor-2.3.12.RELEASE.jar; 赠送原API文档:spring-boot-configuration-processor-2.3.12.RELEASE-javadoc.jar; 赠送源代码:spring-boot-configuration-processor-...
spring框架:spring-framework-4.3.9.RELEASE-dist。。。。
Spring源代码解析(八):Spring驱动Hibernate的实现.doc
赠送jar包:spring-security-crypto-5.5.2.jar; 赠送原API文档:spring-security-crypto-5.5.2-javadoc.jar; 赠送源代码:spring-security-crypto-5.5.2-sources.jar; 赠送Maven依赖信息文件:spring-security-...
赠送jar包:spring-data-jpa-2.0.9.RELEASE.jar; 赠送原API文档:spring-data-jpa-2.0.9.RELEASE-javadoc.jar; 赠送源代码:spring-data-jpa-2.0.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-data-jpa...
赠送jar包:spring-context-5.3.7.jar; 赠送原API文档:spring-context-5.3.7-javadoc.jar; 赠送源代码:spring-context-5.3.7-sources.jar; 赠送Maven依赖信息文件:spring-context-5.3.7.pom; 包含翻译后的API...
Spring源代码解析(一):Spring中的事务处理 ...Spring源代码解析(八):Spring驱动Hibernate的实现 Spring源代码解析(九):Spring Acegi框架鉴权的实现 Spring源代码解析(十):Spring Acegi框架授权的实现
互联网轻量级SSM框架解密:Spring、Spring MVC、MyBatis源码深度剖析 非影印版,高清,带目录书签!!!
Spring Boot快速开发利器:Spring Boot CLISpring Boot快速开发利器:Spring Boot CLISpring Boot快速开发利器:Spring Boot CLISpring Boot快速开发利器:Spring Boot CLI