- 浏览: 400991 次
- 性别:
- 来自: 昆明
文章分类
- 全部博客 (198)
- java (28)
- J2EE (19)
- struts (33)
- sping (13)
- hibernate (18)
- mybatis (15)
- connection pool (3)
- DB (26)
- SQL (21)
- html (13)
- js (7)
- json (3)
- jquery (2)
- document (17)
- linux (15)
- C# (1)
- url (2)
- eweb4j (1)
- Turbine (1)
- 框架 (11)
- jdbcTemplate (3)
- aop (2)
- windows (2)
- ubuntu (1)
- eclipse (11)
- JPA (8)
- svn (4)
- get 传值 (2)
- mysql (5)
- oracle (2)
- hadoop (1)
- MongoDB (2)
- spring (1)
- python (1)
最新评论
-
jcbingjc:
楼主,你好,按照上面的配置,我报如下错误:Missing Pe ...
[properJavaRDP]在网页中实现远程连接 -
sucful:
折腾了半天跑不通 ,要传就搞个完整的吧
Struts2 <sx:div/>实现页面模块异步刷新 -
Kattou:
你好! 看了你写的这个分页 感觉很好, 但是不怎么会用么,请指 ...
jsp分页控件 -
我叫PSB:
地址完全用不了
eclipse中的安装 jseclipse -
1111emotion:
我的工程里还是有乱码的情况,我该改的地方都改了。
Eclipse/MyEclipse更改默认字符集 设置UTF-8
一、applicationContext.xml配置:定义事务和aop
<!-- 定义事务传播属性 --> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" propagation="NOT_SUPPORTED" read-only="true"/> <tx:method name="*" /> </tx:attributes> </tx:advice> <tx:annotation-driven transaction-manager="txManager"/> <!--aop错误引入spring.jar--> <aop:config> <!-- 描述切入点 --> <!-- 1)execution(* *(..)) 表示匹配所有方法 2)execution(public * com. savage.service.UserService.*(..)) 表示匹配com.savage.server.UserService中所有的公有方法 3)execution(* com.savage.server..*.*(..)) 表示匹配com.savage.server包及其子包下的所有方法 --> <aop:pointcut id="transactionPointCut" expression="execution(* com.cn.ssm.dao2..*.*(..))"/> <aop:advisor pointcut-ref="transactionPointCut" advice-ref="txAdvice"/> </aop:config>
二、实现类UserDaoImpl.java
@Transactional
public class UserDaoImpl implements UserDao { @Transactional(rollbackFor = Exception.class) public void insertUser() throws Exception { jdbcTemplate.update("insert into user (name) values ('01');"); jdbcTemplate.update("update user set name=a where id=0;"); } }
三、Test.java 测试
public static void main(String[] args) throws Exception { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext_1.xml"); UserDao userDaoImpl = (UserDao) context.getBean("userDaoImpl"); userDaoImpl.insertUser(); }
测试结果:
init:
deps-module-jar:
deps-ear-jar:
deps-jar:
compile-single:
run-main:
2011-11-26 1:22:38 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1608e05: startup date [Sat Nov 26 01:22:38 CST 2011]; root of context hierarchy
2011-11-26 1:22:38 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [applicationContext_1.xml]
2011-11-26 1:22:38 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@107ebe1: defining beans [dataSource,txManager,txAdvice,org.springframework.aop.config.internalAutoProxyCreator,transactionPointCut,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,jdbcTemplate,userDaoImpl]; root of factory hierarchy
2011-11-26 1:22:39 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
2011-11-26 1:22:39 org.springframework.jdbc.support.SQLErrorCodesFactory <init>
信息: SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
Exception in thread "main" org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [update user set name=a where id=0;]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'a' in 'field list'
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:233)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:406)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:518)
at com.cn.ssm.dao2.UserDaoImpl.insertUser(UserDaoImpl.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy0.insertUser(Unknown Source)
at com.cn.ssm.bll.UserBll.main(UserBll.java:39)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'a' in 'field list'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100)
at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57)
at $java.sql.Statement$$EnhancerByProxool$$d984001c.executeUpdate(<generated>)
at org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:508)
at org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:1)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:395)
... 16 more
Java Result: 1
成功生成(总时间:3 秒)
发表评论
-
SpringMvc+MyBatis+Freemarker 配置
2017-04-06 09:32 23741、引入Jar包: spring所有jar文件 my ... -
struts2 result type 介绍
2012-03-23 09:14 1180在默认时,<result>标签的type属性值是“ ... -
jpa 表生成器 GenerationType.TABLE.
2012-03-15 17:38 4442将当前主键的值单独保存到一个数据库的表中,主键的值每次都是从指 ... -
cannot simultaneously fetch multiple bags异常的解决
2012-03-15 16:18 2421原文来自于http://howsun.bl ... -
JPA 实现继承关系
2012-03-15 03:14 3381JPA支持继承关系,使开发者可以利用继承的思想建模。 ... -
Struts2整合Spring、JPA
2012-02-27 09:46 1924一直觉得JPA很神秘,最近抽空看了下,下面贴出刚才做的St ... -
spring mvc 配置
2011-11-28 14:14 14391、/WEB-INF/web.xml <ser ... -
spring jdbcTemplate调用存储过程
2011-11-27 21:36 1470第一种方式: List<Map<String,Ob ... -
Spring AOP代理时 ClassCastException: $Proxy0 cannot be cast to (类型转换错误)
2011-11-27 01:37 1488Spring AOP代理时 ClassCastExce ... -
spring3之JdbcTemplate详解
2011-11-27 01:36 34101、JdbcTemplate操作数据库 Spring ... -
JAVA三大框架的各自作用
2011-11-25 00:04 3205一、Spring Spring是 ... -
Turbine 框架介绍
2011-11-26 00:16 2259Jakarta Turbine 可能大家不是非常熟悉,但是它是 ... -
使用SSH到底是为了快速开发,还是为了标准?
2011-11-25 00:00 2477使用SSH到底是为了快速开发,还是为了标准? 使用S ... -
Struts2、Spring、Hibernate 高效开发的最佳实践
2011-11-26 00:16 1274引言 SSH(Struts2+Spring+Hi ... -
SiteMesh模板应用与struts2整合
2011-11-23 09:23 1743SiteMesh是一个非常优秀 ... -
集成struts2 spring hibernate,使用注解
2011-11-14 08:56 1513集 成struts,spring,hibernate时,对于 ... -
整合spring、ibatis、proxool
2011-11-17 09:06 21421、proxool连接池配置文件proxool.xml ... -
由Spring管理的Struts2的Action的单实例问题
2011-11-04 21:37 3784背景 : 1) Struts ...
相关推荐
文件`spring_3_1`、`spring_3`和`spring_3_2`可能包含了Spring框架关于JdbcTemplate和事务管理的更多示例代码和配置信息,学习这些资源有助于深入理解Spring4中如何有效地利用JdbcTemplate进行事务控制。通过实践,...
通过本章节的学习,您应该能够掌握如何使用JdbcTemplate进行基本的数据库操作,以及如何在Spring中配置和使用声明式事务来管理复杂的业务流程。这些技能对于开发基于Spring框架的应用程序至关重要。
当使用Spring框架时,我们可以利用Spring的AOP(面向切面编程)特性来更方便地管理事务。Spring支持两种类型的事务管理:编程式事务管理和声明式事务管理。 1. **编程式事务管理**:通过编程的方式管理事务,通常是...
Spring JdbcTemplate支持自动和手动的事务管理。在AOP(面向切面编程)的帮助下,可以在方法级别控制事务的开始、提交和回滚。例如,通过@Transactional注解开启事务,当发生异常时,事务会自动回滚。 五、优势与...
Spring则是一个全面的后端框架,提供依赖注入、AOP(面向切面编程)、事务管理等功能;Spring JDBC Template是Spring提供的一个简化数据库操作的工具,它封装了JDBC的繁琐部分,让开发者可以更专注于业务逻辑。 在...
声明式事务管理通常通过AOP(面向切面编程)实现,只需在方法上添加@Transactional注解,Spring就会自动处理事务的开始、提交和回滚。 7. **异常处理** Spring JDBC将数据库特定的异常转换为Spring的...
总的来说,这个"spring mvc+jdbctemplate非注解例子"涵盖了Web开发中的多个核心概念,包括Spring MVC的MVC设计模式、JdbcTemplate对数据库操作的抽象、AOP的切面编程以及连接池的高效资源管理。每个部分都需要对...
Spring Boot 是一个基于 Spring 框架的快速开发工具,旨在简化新 Spring 应用程序的初始设置和配置。...同时,Spring Boot的灵活性使得它可以适应各种复杂的应用场景,成为现代企业级开发的首选框架之一。
3. **Spring 事务管理(TX)** Spring TX模块提供了声明式和编程式的事务管理。声明式事务管理允许开发者在配置文件中声明哪些方法需要在事务中运行,而无需在代码中显式管理开始和结束事务。这通常通过@...
这两个配置文件需要正确地集成,确保Action类能够被Spring容器管理,并且JdbcTemplate的相关配置(如数据源、事务管理器)也应完整无误。 在实际应用中,这样的组合提供了灵活的架构和高效的数据库访问。Struts2...
在本项目中,"spring-springMvc-jdbctemplate.rar" 是一个包含了使用Spring框架、Spring MVC和JdbcTemplate实现的Web应用示例。这个压缩包可能包含了一系列的配置文件、源代码和数据库脚本,旨在展示如何整合这些...
JdbcTemplate是Spring提供的一个简单易用的数据库操作工具,通过模板方法模式封装了JDBC的常用操作,减少了数据库访问的复杂性,同时保持了事务管理能力。 10. Spring AOP API: Spring AOP提供了Pointcut、Advisor...
Spring会自动通过AOP代理处理这些注解方法,所以我们不需要为接口实现类。然而,如果你的项目需要,可以创建一个空实现。 ### 6. 使用Spring JdbcTemplate 在服务层或者控制器中,我们可以依赖注入`UserRepository...
"Spring 整合 JDBC 和 AOP 事务的方法" Spring 框架为我们提供了一个强大的整合了 JDBC 和 AOP 事务的方法,今天我们就来了解一下这个方法的实现。 首先,我们需要了解什么是 JDBC 和 AOP。JDBC 全称为 Java ...
Spring JdbcTemplate是Spring框架中的一个核心组件,主要用来简化数据库操作。它提供了一种模板方法设计模式,将SQL语句的执行与结果处理进行了抽象,使得开发者可以更加专注于业务逻辑,而无需关心底层数据访问的...
在本项目中,Spring作为一个服务提供者,帮助管理组件间的依赖关系,同时通过AOP实现事务管理和日志记录等功能。 Servlet是Java EE平台中的标准接口,用于处理HTTP请求。在Spring Security 3.1的背景下,Servlet...
首先,Spring框架作为Java企业级应用的核心框架,为系统提供了依赖注入(DI)和面向切面编程(AOP)的能力。依赖注入允许系统组件之间松耦合,使得代码更易于测试和维护。SpringMVC是Spring框架的一部分,专门用于...
3. `spring-jdbc-5.0.0.RELEASE.jar`:包含Spring对JDBC的支持,包括JDBCTemplate和DataSourceTransactionManager,它们是与数据库交互和管理事务的关键。 4. `spring-tx-5.0.0.RELEASE.jar`:提供了事务管理功能,...
其核心特性包括依赖注入(Dependency Injection,DI)、面向切面编程(Aspect Oriented Programming,AOP)、以及对事务、消息、测试等的支持。Spring通过其强大的容器管理机制,实现了控制反转(Inversion of ...