From af3a894c144937f53504e6877faf834b85f09964 Mon Sep 17 00:00:00 2001 From: xingzi Date: Sun, 8 Oct 2023 09:11:04 +0800 Subject: [PATCH] datasource --- .../src/main/java/me/zhengjie/AppRun.java | 9 ++-- .../jpa}/DataSourceConfig.java.txt | 6 +-- .../jpa}/JPAPrimaryConfig.java.txt | 10 ++-- .../jpa}/JPASecondaryConfig.java.txt | 4 +- .../mybatis/DataSourceConfigPrimary.java.txt | 50 +++++++++++++++++++ .../mybatis/DataSourceConfigSecond.java.txt | 44 ++++++++++++++++ .../me/zhengjie/mapper/db1/IStoreMapper.java | 20 ++++++++ .../me/zhengjie/mapper/db2/IStoreMapper2.java | 20 ++++++++ .../modules/system/mapper/IStoreMapper.java | 15 ------ .../zhengjie/modules/system/pojo/IStore.java | 4 +- .../main/resources/config/application-dev.yml | 11 ++-- .../mapper/{ => db1}/IStoreMapper.xml | 2 +- .../resources/mapper/db2/IStoreMapper2.xml | 5 ++ pom.xml | 2 +- 14 files changed, 167 insertions(+), 35 deletions(-) rename eladmin-system/src/main/java/me/zhengjie/{util => config/jpa}/DataSourceConfig.java.txt (88%) rename eladmin-system/src/main/java/me/zhengjie/{util => config/jpa}/JPAPrimaryConfig.java.txt (83%) rename eladmin-system/src/main/java/me/zhengjie/{util => config/jpa}/JPASecondaryConfig.java.txt (97%) create mode 100644 eladmin-system/src/main/java/me/zhengjie/config/mybatis/DataSourceConfigPrimary.java.txt create mode 100644 eladmin-system/src/main/java/me/zhengjie/config/mybatis/DataSourceConfigSecond.java.txt create mode 100644 eladmin-system/src/main/java/me/zhengjie/mapper/db1/IStoreMapper.java create mode 100644 eladmin-system/src/main/java/me/zhengjie/mapper/db2/IStoreMapper2.java delete mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/system/mapper/IStoreMapper.java rename eladmin-system/src/main/resources/mapper/{ => db1}/IStoreMapper.xml (74%) create mode 100644 eladmin-system/src/main/resources/mapper/db2/IStoreMapper2.xml diff --git a/eladmin-system/src/main/java/me/zhengjie/AppRun.java b/eladmin-system/src/main/java/me/zhengjie/AppRun.java index ad12601..b58bf6d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/AppRun.java +++ b/eladmin-system/src/main/java/me/zhengjie/AppRun.java @@ -15,9 +15,6 @@ */ package me.zhengjie; -import io.swagger.annotations.Api; -import me.zhengjie.annotation.rest.AnonymousGetMapping; -import me.zhengjie.utils.SpringContextHolder; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.ApplicationPidFileWriter; @@ -25,8 +22,13 @@ import org.springframework.context.annotation.Bean; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.transaction.annotation.EnableTransactionManagement; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.Api; +import me.zhengjie.annotation.rest.AnonymousGetMapping; +import me.zhengjie.utils.SpringContextHolder; + /** * 开启审计功能 -> @EnableJpaAuditing * @@ -60,6 +62,7 @@ public class AppRun { * @return / */ @AnonymousGetMapping("/") + @Transactional public String index() { return "Backend service started successfully"; } diff --git a/eladmin-system/src/main/java/me/zhengjie/util/DataSourceConfig.java.txt b/eladmin-system/src/main/java/me/zhengjie/config/jpa/DataSourceConfig.java.txt similarity index 88% rename from eladmin-system/src/main/java/me/zhengjie/util/DataSourceConfig.java.txt rename to eladmin-system/src/main/java/me/zhengjie/config/jpa/DataSourceConfig.java.txt index 6c1a6de..04aaed3 100644 --- a/eladmin-system/src/main/java/me/zhengjie/util/DataSourceConfig.java.txt +++ b/eladmin-system/src/main/java/me/zhengjie/config/jpa/DataSourceConfig.java.txt @@ -1,4 +1,4 @@ -package me.zhengjie.util; +package me.zhengjie.config.jpa; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; @@ -16,7 +16,7 @@ public class DataSourceConfig { * @return */ @Primary - @Bean(name = "primaryDataSource") + @Bean(name = "primaryJpaDataSource") @ConfigurationProperties("spring.datasource.druid") public DataSource dataSource() { return DruidDataSourceBuilder.create().build(); @@ -27,7 +27,7 @@ public class DataSourceConfig { * * @return */ - @Bean(name = "secondDataSource") + @Bean(name = "secondJpaDataSource") @ConfigurationProperties("spring.datasource.secondary") public DataSource secondDataSource() { return DruidDataSourceBuilder.create().build(); diff --git a/eladmin-system/src/main/java/me/zhengjie/util/JPAPrimaryConfig.java.txt b/eladmin-system/src/main/java/me/zhengjie/config/jpa/JPAPrimaryConfig.java.txt similarity index 83% rename from eladmin-system/src/main/java/me/zhengjie/util/JPAPrimaryConfig.java.txt rename to eladmin-system/src/main/java/me/zhengjie/config/jpa/JPAPrimaryConfig.java.txt index 72df147..39597c0 100644 --- a/eladmin-system/src/main/java/me/zhengjie/util/JPAPrimaryConfig.java.txt +++ b/eladmin-system/src/main/java/me/zhengjie/config/jpa/JPAPrimaryConfig.java.txt @@ -1,4 +1,4 @@ -package me.zhengjie.util; +package me.zhengjie.config.jpa; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties; @@ -22,7 +22,9 @@ import java.util.Map; @Configuration @EnableTransactionManagement @EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactoryPrimary", transactionManagerRef = "transactionManagerPrimary", basePackages = { - "me.zhengjie.repository","me.zhengjie.modules.quartz.repository","me.zhengjie.modules.mnt.repository" }) + "me.zhengjie.repository", "me.zhengjie.modules.quartz.repository", "me.zhengjie.modules.mnt.repository", + "me.zhengjie.modules.company.repository", "me.zhengjie.modules.flow.repository", + "me.zhengjie.modules.goods.repository", "me.zhengjie.modules.supplier.repository" }) public class JPAPrimaryConfig { @Resource @@ -32,7 +34,7 @@ public class JPAPrimaryConfig { private HibernateProperties hibernateProperties; @Resource - @Qualifier("primaryDataSource") + @Qualifier("primaryJpaDataSource") private DataSource primaryDataSource; @Primary @@ -47,7 +49,7 @@ public class JPAPrimaryConfig { Map properties = hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings()); return builder.dataSource(primaryDataSource).properties(properties) - .packages("me.zhengjie.domain","me.zhengjie.modules.quartz.domain","me.zhengjie.modules.mnt.domain") + .packages("me.zhengjie.domain", "me.zhengjie.modules.quartz.domain", "me.zhengjie.modules.mnt.domain") .persistenceUnit("primaryPersistenceUnit").build(); } diff --git a/eladmin-system/src/main/java/me/zhengjie/util/JPASecondaryConfig.java.txt b/eladmin-system/src/main/java/me/zhengjie/config/jpa/JPASecondaryConfig.java.txt similarity index 97% rename from eladmin-system/src/main/java/me/zhengjie/util/JPASecondaryConfig.java.txt rename to eladmin-system/src/main/java/me/zhengjie/config/jpa/JPASecondaryConfig.java.txt index 5ec73e6..515b46b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/util/JPASecondaryConfig.java.txt +++ b/eladmin-system/src/main/java/me/zhengjie/config/jpa/JPASecondaryConfig.java.txt @@ -1,4 +1,4 @@ -package me.zhengjie.util; +package me.zhengjie.config.jpa; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties; @@ -36,7 +36,7 @@ public class JPASecondaryConfig { private HibernateProperties hibernateProperties; @Resource - @Qualifier("secondDataSource") + @Qualifier("secondJpaDataSource") private DataSource secondaryDataSource; @Bean(name = "entityManagerSecondary") diff --git a/eladmin-system/src/main/java/me/zhengjie/config/mybatis/DataSourceConfigPrimary.java.txt b/eladmin-system/src/main/java/me/zhengjie/config/mybatis/DataSourceConfigPrimary.java.txt new file mode 100644 index 0000000..6e5cff7 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/config/mybatis/DataSourceConfigPrimary.java.txt @@ -0,0 +1,50 @@ +package me.zhengjie.config.mybatis; + +import javax.sql.DataSource; + +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.SqlSessionTemplate; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; + +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; + +@Configuration +@MapperScan(basePackages = "me.zhengjie.mapper.db1.**", sqlSessionFactoryRef = "primarySqlSessionFactory") +public class DataSourceConfigPrimary { + /** + * 配置主数据源 + * + * @return + */ + @Bean(name = "primaryDataSource") + @Primary + @ConfigurationProperties("spring.datasource.druid") + public DataSource dataSource() { + return DruidDataSourceBuilder.create().build(); + } + + @Bean(name = "primarySqlSessionFactory") + @Primary + public SqlSessionFactory sqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource) + throws Exception { + SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); + bean.setDataSource(dataSource); + bean.setMapperLocations( + new PathMatchingResourcePatternResolver().getResources("classpath*:me.zhengjie.mapper.db1/*.xml")); + return bean.getObject(); + } + + @Bean("primarySqlSessionTemplate") + @Primary + public SqlSessionTemplate sqlSessionTemplate( + @Qualifier("primarySqlSessionFactory") SqlSessionFactory sessionFactory) { + return new SqlSessionTemplate(sessionFactory); + } +} diff --git a/eladmin-system/src/main/java/me/zhengjie/config/mybatis/DataSourceConfigSecond.java.txt b/eladmin-system/src/main/java/me/zhengjie/config/mybatis/DataSourceConfigSecond.java.txt new file mode 100644 index 0000000..e4c4ad1 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/config/mybatis/DataSourceConfigSecond.java.txt @@ -0,0 +1,44 @@ +package me.zhengjie.config.mybatis; + +import javax.sql.DataSource; + +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.SqlSessionTemplate; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; + +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; + +@Configuration +@MapperScan(basePackages = "me.zhengjie.mapper.db2.**", sqlSessionFactoryRef = "secondSqlSessionFactory") +public class DataSourceConfigSecond { + + @Bean(name = "secondDataSource") + @ConfigurationProperties("spring.datasource.secondary") + public DataSource dataSource() { + return DruidDataSourceBuilder.create().build(); + } + + @Bean(name = "secondSqlSessionFactory") + public SqlSessionFactory secondSqlSessionFactory(@Qualifier("secondDataSource") DataSource dataSource) + throws Exception { + SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); + bean.setDataSource(dataSource); + bean.setMapperLocations( + new PathMatchingResourcePatternResolver().getResources("classpath*:me.zhengjie.mapper.db2/*.xml")); + return bean.getObject(); + } + + @Bean("secondSqlSessionTemplate") + @Primary + public SqlSessionTemplate secondSqlSessionTemplate( + @Qualifier("secondSqlSessionFactory") SqlSessionFactory sessionFactory) { + return new SqlSessionTemplate(sessionFactory); + } +} diff --git a/eladmin-system/src/main/java/me/zhengjie/mapper/db1/IStoreMapper.java b/eladmin-system/src/main/java/me/zhengjie/mapper/db1/IStoreMapper.java new file mode 100644 index 0000000..e7dbee8 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/mapper/db1/IStoreMapper.java @@ -0,0 +1,20 @@ +package me.zhengjie.mapper.db1; + +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import me.zhengjie.modules.system.pojo.IStore; + +@Mapper +public interface IStoreMapper { + /** + * 查询所有门店 + */ + List getAll(); + + @Select("SELECT * FROM sys_store WHERE name = #{name}") + IStore findByName(@Param("name") String name); +} diff --git a/eladmin-system/src/main/java/me/zhengjie/mapper/db2/IStoreMapper2.java b/eladmin-system/src/main/java/me/zhengjie/mapper/db2/IStoreMapper2.java new file mode 100644 index 0000000..855bcc6 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/mapper/db2/IStoreMapper2.java @@ -0,0 +1,20 @@ +package me.zhengjie.mapper.db2; + +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import me.zhengjie.modules.system.pojo.IStore; + +@Mapper +public interface IStoreMapper2 { + /** + * 查询所有门店 + */ + List getAll(); + + @Select("SELECT * FROM sys_store WHERE name = #{name}") + IStore findByName(@Param("name") String name); +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/mapper/IStoreMapper.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/mapper/IStoreMapper.java deleted file mode 100644 index ca06b1b..0000000 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/mapper/IStoreMapper.java +++ /dev/null @@ -1,15 +0,0 @@ -package me.zhengjie.modules.system.mapper; - -import java.util.List; - -import org.apache.ibatis.annotations.Mapper; - -import me.zhengjie.modules.system.pojo.IStore; - -@Mapper -public interface IStoreMapper { - /** - * 查询所有门店 - */ - List getAll(); -} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/pojo/IStore.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/pojo/IStore.java index 9a8cd14..2cdbcf3 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/pojo/IStore.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/pojo/IStore.java @@ -10,6 +10,8 @@ import lombok.ToString; @NoArgsConstructor @ToString public class IStore { - private Long id; + private Long store_id; private String name; + private Integer subCount; + private String code; } diff --git a/eladmin-system/src/main/resources/config/application-dev.yml b/eladmin-system/src/main/resources/config/application-dev.yml index 984162c..869bd15 100644 --- a/eladmin-system/src/main/resources/config/application-dev.yml +++ b/eladmin-system/src/main/resources/config/application-dev.yml @@ -50,15 +50,16 @@ spring: multi-statement-allow: true secondary: db-type: com.alibaba.druid.pool.DruidDataSource - driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:140.249.182.90}:${DB_PORT:3306}/${DB_NAME:eladmin}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false - username: ${DB_USER:liuniu} - password: ${DB_PWD:Lnkj2022} - third: driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy url: jdbc:log4jdbc:mysql://${DB_HOST:168.138.192.184}:${DB_PORT:3306}/${DB_NAME:eladmin}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false username: ${DB_USER:flow} password: ${DB_PWD:f321123} + third: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + url: jdbc:log4jdbc:mysql://${DB_HOST:140.249.182.90}:${DB_PORT:3306}/${DB_NAME:eladmin}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false + username: ${DB_USER:liuniu} + password: ${DB_PWD:Lnkj2022} + #配置MyBatis mybatis: type-aliases-package: me.zhengjie.modules.system.pojo diff --git a/eladmin-system/src/main/resources/mapper/IStoreMapper.xml b/eladmin-system/src/main/resources/mapper/db1/IStoreMapper.xml similarity index 74% rename from eladmin-system/src/main/resources/mapper/IStoreMapper.xml rename to eladmin-system/src/main/resources/mapper/db1/IStoreMapper.xml index 22acb09..91a94e9 100644 --- a/eladmin-system/src/main/resources/mapper/IStoreMapper.xml +++ b/eladmin-system/src/main/resources/mapper/db1/IStoreMapper.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/eladmin-system/src/main/resources/mapper/db2/IStoreMapper2.xml b/eladmin-system/src/main/resources/mapper/db2/IStoreMapper2.xml new file mode 100644 index 0000000..ec7e548 --- /dev/null +++ b/eladmin-system/src/main/resources/mapper/db2/IStoreMapper2.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index f955a40..b64d754 100644 --- a/pom.xml +++ b/pom.xml @@ -199,7 +199,7 @@ org.mybatis.spring.boot mybatis-spring-boot-starter - 2.2.2 + 2.3.1