springboot+mybatis+mysql事务未生效
来源:互联网 发布:机动战士高达age知乎 编辑:程序博客网 时间:2024/06/03 05:23
公司新项目 用的是springboot+mybatis+mysql 未使用springboot的jpa
1
@Configuration@MapperScan("com.xx.xxx.dao")@EnableTransactionManagementpublic class MyBatisConfiguration { @Value("${connection.datasource.driver-class-name}") private String driverClassName; @Value("${connection.datasource.url}") private String url; @Value("${connection.datasource.username}") private String username; @Value("${connection.datasource.password}") private String password; @Bean(destroyMethod = "close") @Primary public DataSource primaryDataSource() { HikariDataSource hikariDataSource = new HikariDataSource(); hikariDataSource.setPoolName("springHikariCP"); hikariDataSource.setDriverClassName(driverClassName); hikariDataSource.setJdbcUrl(url); hikariDataSource.setUsername(username); hikariDataSource.setPassword(password); return hikariDataSource; } @Bean public DataSourceTransactionManager makeDataSourceTransactionManager(DataSource dataSource) { DataSourceTransactionManager manager = new DataSourceTransactionManager(); manager.setDataSource(dataSource); return manager; } @Bean public SqlSessionFactory makeSqlSessionFactoryBean(DataSource dataSource) throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); sessionFactory.setTypeAliasesPackage("com.xx.xxx.domain"); return sessionFactory.getObject(); }}
以及在application.properties配置数据源
其余与正常spring下的mybatis一致
后来发现事务未生效 明明错误的却没有回滚 但是配置均正确。
在排除是配置的问题后,想起来mysql的表需要时innodb才能支持事务,改表为innodb引擎后,发现仍然是一个sql提交一次。
是因为mysql的autocommit的问题。当其为1的时候表示自动提交,即一个sql提交一次事务,所以出错后之前的sql未回滚。
于是在mysql服务器的配置中(/etc/my.cnf)加上一行init_connect='SET autocommit=0' 重启mysql服务(service mysqld restart)后 发现事务回滚生效,spring手动提交
0 0
- springboot+mybatis+mysql事务未生效
- SpringMVC+myBatis事务不生效
- springboot热部署未生效怎么办
- SpringBoot集成MyBatis开启事务
- SpringBoot集成MyBatis开启事务
- SpringBoot集成MyBatis开启事务
- SpringMVC+Mybatis 事务不生效的解决方案
- Springboot整合Mysql+Mybatis
- springboot+mybatis+mysql(2)
- mysql表名忽略大小写 未生效
- [Mybatis] SpringBoot -mybatis 常用mysql数据库交互
- springboot -mysql -mybatis mybatis-puls,druid结合
- springmvc mybatis 多数据源 事务不生效
- Spring-Mybatis 子方法事务不生效问题
- mysql的repalce into在rewriteBatchedStatements为true未生效
- 如何查询mysql事务未提交
- mysql查看未提交的事务进程
- Springboot+Mybatis+Maven+Oracle+Cassandra+事务(Aop)+定时任务实现
- 安装paretochart
- VS2010下QT的简单使用
- jsp中include指令与jsp:include动作标识的区别
- 面向对象/面向过程编程
- VC++ 动态检测串口的热插拔
- springboot+mybatis+mysql事务未生效
- Android AsyncTask两种线程池分析和总结
- 数据库&SQL基础概要
- java.lang.OutOfMemoryError: Java heap space
- 内核级线程与用户级线程异同 http://blog.csdn.net/yanglovefeng/article/details/7887939
- navigationController pushViewController 多次复杂跳转后怎么返回
- ENHMETAHEADER说明
- C++经典开源库
- 公共技术点之 Java 动态代理