-
spring mybatis集成 添加数据 事务回滚了 是我的配置出错了吗 求解啊10
spring和mybatis集成 添加一条数据数据回滚了 看日志 打印了sql语句 数据库但没有数据 这是怎么回事了
我的配置:<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:SqlMapConfig.xml"/> </bean> <bean id="myTransaction" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <tx:advice id="myadvice" transaction-manager="myTransaction"> <tx:attributes> <tx:method name="get*" read-only="true"/> <tx:method name="list*" read-only="true"/> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="del*" propagation="REQUIRED"/> <tx:method name="edit*" propagation="REQUIRED"/> <tx:method name="*"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="bizmethod" expression="execution(* com.bfly.ec.service.impl.*.*(..))"/> <aop:advisor pointcut-ref="bizmethod" advice-ref="myadvice"/> </aop:config> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.bfly.ec.mapper"/> </bean> <import resource="applicationContext-*.xml"/> </beans>
代码:import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import com.bfly.common.page.Pager; import com.bfly.ec.entity.GoodsMsg; import com.bfly.ec.mapper.GoodsMsgMapper; import com.bfly.ec.service.IGoodsMsgService; public class GoodsMsgServiceImpl implements IGoodsMsgService { @Resource private GoodsMsgMapper goodsMsgMapper; public int addGoodsMsg(GoodsMsg goodsMsg) { return goodsMsgMapper.saveGoodsMsg(goodsMsg); } public Map<String, Integer> getGoodsPercent(int goodsId){ Map<String, Integer> map=goodsMsgMapper.getGoodsPercent(goodsId); int count=map.get("countnum"); int value=0; for (String key:map.keySet()) { if(key.equalsIgnoreCase("countnum")) { continue; } value=Math.round(map.get(key)/(float)count*100); map.put(key, value); } return map; } public int getCountMsg(int propId) { Map<String,Object> map=new HashMap<String, Object>(); map.put("goodsId",propId); return goodsMsgMapper.getCountMsg(map); } }
打印的日志:
18:26:16,546 DEBUG saveGoodsMsg:47 - ooo Using Connection [jdbc:sqlserver://127.0.0.1:1433;xopenStates=false;sendTimeAsDatetime=true;trustServerCertificate=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;packetSize=8000;loginTimeout=15;lockTimeout=-1;lastUpdateCount=true;encrypt=false;disableStatementPooling=true;databaseName=bfly_ec;applicationName=Microsoft SQL Server JDBC Driver;, UserName=hulibo, Microsoft SQL Server JDBC Driver 3.0]
18:26:16,546 DEBUG saveGoodsMsg:47 - ==> Preparing: insert into goods_msg(user_id,username,email,msg_title,msg_content,goods_start,msg_date,goods_id,status,type_id) values(?,?,?,?,?,?,?,?,?,?);
18:26:16,546 DEBUG saveGoodsMsg:47 - ==> Parameters: 1(Integer), hulibo(String), fsdfsd(String), 对 '高清液晶电视LCD-32L100AS购买即返1000积分'的评价(String), sdfsdfsd(String), 3(Integer), 2012-05-17 18:26:16.546(Timestamp), 5(Integer), 0(Integer), 67(Integer)
2012年5月21日 15:12
目前还没有答案
相关推荐
花了一晚上时间终于搞出来了Spring整合Mybatis事务回滚(Mysql数据库),控制Service层中的多次插入操作,多次操作整体是一个事务。 里面有缘嘛和jar包,资源为war包,导入即可。运行Test类中的测试代码即可。 建表...
在"Spring/SpringMVC/MyBatis整合+事务回滚"的主题中,我们将深入探讨如何将这三个框架整合起来,并实现事务的回滚功能。 首先,Spring框架是核心,它提供了依赖注入(DI)和面向切面编程(AOP)的能力,使得代码更...
2. **配置数据源**:在 Spring 的配置文件(如 `applicationContext.xml`)中定义数据源,这是 Spring 和 MyBatis 交互的基础。可以使用 `org.springframework.jdbc.datasource.DriverManagerDataSource` 或其他高级...
SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+...
在IT行业中,SpringMVC、Spring和Mybatis是三大核心框架,它们的集成使用是Java Web开发中的常见实践。这个集成开发环境旨在提供一个高效、灵活的开发平台,以实现业务逻辑与数据访问的分离,提高代码的可维护性和可...
在使用Spring结合MyBatis框架进行开发时,有时会遇到事务管理方面的问题,特别是当项目采用纯注解的方式配置事务时,可能会出现事务无法正常提交的情况。这种问题通常会在不同的数据库类型(如MySQL和Oracle)上表现...
在Spring和MyBatis的整合过程中,配置文件起着至关重要的作用。它们定义了Spring如何管理MyBatis的SqlSessionFactory,以及数据源、事务管理器等核心...理解并正确配置这些文件对于顺利集成Spring和MyBatis至关重要。
MyBatis本身并不提供事务管理,但在Spring环境下,MyBatis的SqlSession会自动被Spring事务管理器控制。当事务开始后,所有的SqlSession操作(如insert、update、delete)都会被包含在这个事务中,直到事务结束。 6...
1. **引入依赖**:在项目中添加Spring、MyBatis以及数据库驱动的相关jar包,如果使用的是Maven或Gradle,则需在pom.xml或build.gradle中配置相应的依赖。 2. **配置MyBatis**:创建MyBatis的配置文件`mybatis-...
4. **MyBatis配置**:每个数据源都需要对应的MyBatis配置,包括SqlSessionFactoryBean的创建,以及Mapper接口和XML配置文件的关联。 5. **代码结构**:通常,我们会为每个数据源创建一个独立的服务层和DAO层,以...
在IT行业中,Spring框架与MyBatis的整合是常见的数据访问技术组合,它们可以提供灵活、高效的数据库操作。当我们需要处理多个数据源时,例如在分布式系统或读写分离的场景下,Spring整合MyBatis的多数据源切换就显得...
Spring还提供了数据访问、事务管理、任务调度等模块,支持与各种持久化技术的集成,包括MyBatis。 3. MyBatis MyBatis是一个轻量级的持久层框架,它简化了SQL操作,将SQL语句与Java代码分离。开发者可以使用XML或...
Spring3 整合 MyBatis3 配置多数据源动态选择 SqlSessionFactory 详细教程 本教程主要介绍了 Spring3 整合 MyBatis3 配置多数据源动态选择 SqlSessionFactory 的详细教程。下面将详细介绍如何实现 Spring 整合 ...
3. **配置MyBatis**:创建MyBatis的配置文件(如:mybatis-config.xml),设置数据源、事务管理器等。同时,定义Mapper XML文件,其中包含SQL语句和结果映射。 4. **编写Mapper接口**:在Java代码中,创建Mapper...
4. **Mybatis集成**:为每个数据源创建一个SqlSessionFactory,并在Mybatis的配置中指定对应的DataSource。 5. **业务层调整**:在Service层,根据业务逻辑选择对应的数据源进行操作,可以通过ThreadLocal等手段...
3. 配置MyBatis:创建MyBatis的配置文件(mybatis-config.xml),定义数据源、事务管理器和Mappers。 4. 编写Mapper接口和SQL映射文件:定义Mapper接口,编写对应的XML映射文件,指定SQL语句和结果映射。 5. 使用...
在IT行业中,分布式事务是大型系统中不可或...接着,配置Spring的事务管理器,声明Atomikos作为全局事务管理器,并指定相应的事务属性,如超时时间、回滚规则等。在applicationContext.xml或对应的配置类中: ```xml ...
在Java开发领域,Spring框架和MyBatis框架的集成是常见的数据访问技术组合。Spring作为一个全面的轻量级应用框架,提供了依赖注入、事务管理、AOP(面向切面编程)等功能;而MyBatis则是一个优秀的持久层框架,它...
集成Spring和Mybatis,首先需要在Spring的配置文件中定义数据源、SqlSessionFactory和MapperScannerConfigurer。数据源是数据库连接的载体,SqlSessionFactory是Mybatis的核心对象,用于创建SqlSession,而...
接下来,重点讲解了Spring与MyBatis的集成过程,包括Spring的DataSource配置、事务管理、以及MyBatis-Spring的使用,让读者了解如何在Spring环境中优雅地使用MyBatis进行数据访问。此外,书中还会涉及Spring MVC的...