数据源一:
figure;import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.logging.Log4jImpl;
import org.apache.ibatis.logging.slf4j.Slf4jImpl;
import org.apache.ibatis.session.SqlSessionFactory;
batis.spring.SqlSessionFactoryBean;
batis.spring.SqlSessionTemplate;
batis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import t.annotation.Bean;
import t.annotation.Configuration;
import io.support.PathMatchingResourcePatternResolver;
import io.support.ResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import ansaction.PlatformTransactionManager;import javax.sql.DataSource;@Configuration
@MapperScan(basePackages = ample.zhujie.dao",sqlSessionFactoryRef = "mysqlSqlSessionFactory")
public class MysqlProperties {private String mybatisLocation = "classpath:/mapper/**/*.xml";@Bean("druidDataSource")public DataSource getDataSource() {// 创建 dataSource 接口的实现类DruidDataSource datasource = new DruidDataSource();datasource.setUrl("jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false");datasource.setPassword("111222");datasource.setUsername("root");return datasource;}@Bean("mysqlSqlSessionFactory")public SqlSessionFactory getSqlSessionFactory(@Qualifier("druidDataSource") DataSource dataSource) throws Exception {SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource);ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();// 配置mybatis 的mapper 文件sqlSessionFactoryBean.Resources(mybatisLocation));// mybatis 在mapper文件中实体字段映射自动按驼峰命名规则对应实体字段Object().getConfiguration().setMapUnderscoreToCamelCase(true);// mybatis映射map的时候,字段值为null情况也返回Object().getConfiguration().setCallSettersOnNulls(true);Object();}@Bean("sqlSessionTemplate")public SqlSessionTemplate getSqlSessionTemplate(@Qualifier("mysqlSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}@Beanpublic PlatformTransactionManager txManager(@Qualifier("druidDataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}}
数据源二:
figure;import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
batis.spring.SqlSessionFactoryBean;
batis.spring.SqlSessionTemplate;
batis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import t.annotation.Bean;
import t.annotation.Configuration;
import io.support.PathMatchingResourcePatternResolver;
import io.support.ResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import ansaction.PlatformTransactionManager;import javax.sql.DataSource;@Configuration
@MapperScan(basePackages = ample.zhujie.daotwo",sqlSessionFactoryRef = "mysqlSqlSessionFactorytwo")
public class MysqlPropertiesTwo {private String mybatisLocation = "classpath:/mappertwo/**/*.xml";@Bean("druidDataSourcetwo")public DataSource getDataSource() {// 创建 dataSource 接口的实现类DruidDataSource datasource = new DruidDataSource();datasource.setUrl("jdbc:mysql://127.0.0.1:3306/nacos?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false");datasource.setPassword("111222");datasource.setUsername("root");return datasource;}@Bean("mysqlSqlSessionFactorytwo")public SqlSessionFactory getSqlSessionFactory(@Qualifier("druidDataSourcetwo") DataSource dataSource) throws Exception {SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource);ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();// 配置mybatis 的mapper 文件sqlSessionFactoryBean.Resources(mybatisLocation));// mybatis 在mapper文件中实体字段映射自动按驼峰命名规则对应实体字段Object().getConfiguration().setMapUnderscoreToCamelCase(true);// mybatis映射map的时候,字段值为null情况也返回Object().getConfiguration().setCallSettersOnNulls(true);Object();}@Bean("sqlSessionTemplatetwo")public SqlSessionTemplate getSqlSessionTemplate(@Qualifier("mysqlSqlSessionFactorytwo") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}@Bean("txManagertwo")public PlatformTransactionManager txManager(@Qualifier("druidDataSourcetwo") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}}
切记在使用事物的时候一定要指定具体的某一个bean,比如如下service层,某一个方法上加上transactionManager 指定用的是哪一个数据源,如下的userAdminDao只能是数据源druidDataSource里面的,因为它使用的是txManager
@Transactional(rollbackFor = Exception.class,transactionManager ="txManager")public void insertUserAdmin(UserAdmin userAdmin) throws TestTxException {userAdminDao.insertUserAdmin(userAdmin);try {stTx();} catch (TestTxException e) {System.out.Msg());throw new TestTxException("405","测试异常");}userAdmin.Id() + 2);userAdminDao.insertUserAdmin(userAdmin);}
本文发布于:2024-02-02 03:31:13,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170681689541092.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |