提交 1e61c5bd 作者: guofeng

demo

上级 81af90f4
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>huazheng-project-quartz</artifactId> <artifactId>huazheng-project-quartz</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>huazheng-project-quartz</name> <name>huazheng-project-quartz</name>
<parent> <parent>
<groupId>com.huazheng.project</groupId> <groupId>com.huazheng.project</groupId>
<artifactId>huazheng-project</artifactId> <artifactId>huazheng-project</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</parent> </parent>
<!-- 提交到maven仓库 --> <!-- 提交到maven仓库 -->
<distributionManagement> <distributionManagement>
<repository> <repository>
<id>maven-releases</id> <id>maven-releases</id>
<name>maven Releases</name> <name>maven Releases</name>
<url>http://47.103.50.109:18084/repository/maven-releases/</url> <url>http://47.103.50.109:18084/repository/maven-releases/</url>
</repository> </repository>
<snapshotRepository> <snapshotRepository>
<id>maven-snapshots</id> <id>maven-snapshots</id>
<name>maven Snapshots</name> <name>maven Snapshots</name>
<url>http://47.103.50.109:18084/repository/maven-snapshots/</url> <url>http://47.103.50.109:18084/repository/maven-snapshots/</url>
</snapshotRepository> </snapshotRepository>
</distributionManagement> </distributionManagement>
<repositories> <repositories>
<repository> <repository>
<id>maven-snapshots</id> <id>maven-snapshots</id>
<name>maven-snapshots</name> <name>maven-snapshots</name>
<url>http://47.103.50.109:18084/repository/maven-snapshots/</url> <url>http://47.103.50.109:18084/repository/maven-snapshots/</url>
<releases> <releases>
<enabled>false</enabled> <enabled>false</enabled>
</releases> </releases>
<snapshots> <snapshots>
<enabled>true</enabled> <enabled>true</enabled>
<updatePolicy>always</updatePolicy> <updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy> <checksumPolicy>warn</checksumPolicy>
</snapshots> </snapshots>
</repository> </repository>
<repository> <repository>
<id>maven-releases</id> <id>maven-releases</id>
<name>maven-releases</name> <name>maven-releases</name>
<url>http://47.103.50.109:18084/repository/maven-releases/</url> <url>http://47.103.50.109:18084/repository/maven-releases/</url>
<releases> <releases>
<enabled>true</enabled> <enabled>true</enabled>
</releases> </releases>
<snapshots> <snapshots>
<enabled>false</enabled> <enabled>false</enabled>
</snapshots> </snapshots>
</repository> </repository>
</repositories> </repositories>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId> <artifactId>spring-boot-starter-quartz</artifactId>
</dependency> </dependency>
<!-- mysql驱动 --> <!-- mysql驱动 -->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pivotal</groupId> <groupId>com.pivotal</groupId>
<artifactId>greenplum-jdbc</artifactId> <artifactId>greenplum-jdbc</artifactId>
<version>5.1.4</version> <version>5.1.4</version>
</dependency> </dependency>
<!-- 连接池 --> <!-- 连接池 -->
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId> <artifactId>druid-spring-boot-starter</artifactId>
</dependency> </dependency>
<!-- mybatis 分页插件 --> <!-- mybatis 分页插件 -->
<dependency> <dependency>
<groupId>com.github.pagehelper</groupId> <groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId> <artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency> </dependency>
<!-- mybatis --> <!-- mybatis -->
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId> <artifactId>mybatis-plus-boot-starter</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.kafka</groupId> <groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId> <artifactId>spring-kafka</artifactId>
</dependency> </dependency>
<!-- hutool --> <!-- hutool -->
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>redis.clients</groupId> <groupId>redis.clients</groupId>
<artifactId>jedis</artifactId> <artifactId>jedis</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.data</groupId> <groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId> <artifactId>spring-data-redis</artifactId>
</dependency> </dependency>
<!-- lombok --> <!-- lombok -->
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>ngdbc</groupId> <groupId>ngdbc</groupId>
<artifactId>ngdbc</artifactId> <artifactId>ngdbc</artifactId>
<version>1.0</version> <version>1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>sqljdbc42</groupId> <groupId>sqljdbc42</groupId>
<artifactId>sqljdbc42</artifactId> <artifactId>sqljdbc42</artifactId>
<version>1.0</version> <version>1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId> <artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <artifactId>fastjson</artifactId>
<version>1.2.74</version> <version>1.2.74</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId> <artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version> <version>2.9.2</version>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
<configuration> <configuration>
<executable>true</executable> <executable>true</executable>
<mainClass>com.huazheng.project.Application</mainClass> <mainClass>com.huazheng.project.Application</mainClass>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>
<goals> <goals>
<goal>repackage</goal> <goal>repackage</goal>
</goals> </goals>
</execution> </execution>
</executions> </executions>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
</project> </project>
package com.huazheng.project.config; package com.huazheng.project.config;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
@Configuration @Configuration
@MapperScan(basePackages = "com.huazheng.project.greenplum.mapper", sqlSessionFactoryRef = "greenplumSqlSessionFactory") @MapperScan(basePackages = "com.huazheng.project.greenplum.mapper", sqlSessionFactoryRef = "greenplumSqlSessionFactory")
public class GreenplumConfig { public class GreenplumConfig {
//主数据源配置 ds2数据源 //主数据源配置 ds2数据源
@Primary @Primary
@Bean(name = "greenplumDataSourceProperties") @Bean(name = "greenplumDataSourceProperties")
@ConfigurationProperties(prefix = "spring.datasource.greenplum") @ConfigurationProperties(prefix = "spring.datasource.greenplum")
public DataSourceProperties ds2DataSourceProperties() { public DataSourceProperties ds2DataSourceProperties() {
return new DataSourceProperties(); return new DataSourceProperties();
} }
//主数据源 ds2数据源 //主数据源 ds2数据源
@Primary @Primary
@Bean(name = "greenplumDataSource") @Bean(name = "greenplumDataSource")
public DataSource ds2DataSource(@Qualifier("greenplumDataSourceProperties") DataSourceProperties dataSourceProperties) { public DataSource ds2DataSource(@Qualifier("greenplumDataSourceProperties") DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build(); return dataSourceProperties.initializeDataSourceBuilder().build();
} }
// 主数据源 ds2数据源 // 主数据源 ds2数据源
@Primary @Primary
@Bean("greenplumSqlSessionFactory") @Bean("greenplumSqlSessionFactory")
public SqlSessionFactory ds2SqlSessionFactory(@Qualifier("greenplumDataSource") DataSource dataSource) throws Exception { public SqlSessionFactory ds2SqlSessionFactory(@Qualifier("greenplumDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean(); MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource); sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/greenplum/*.xml")); sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/greenplum/*.xml"));
sqlSessionFactory.setPlugins(new Interceptor[] { new PaginationInterceptor(), sqlSessionFactory.setPlugins(new Interceptor[] { new PaginationInterceptor(),
// new PerformanceInterceptor() // new PerformanceInterceptor()
// .setFormat(true), // .setFormat(true),
}); });
sqlSessionFactory.setGlobalConfig(new GlobalConfig().setBanner(false)); sqlSessionFactory.setGlobalConfig(new GlobalConfig().setBanner(false));
sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml")); sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml"));
sqlSessionFactory.setTypeAliasesPackage("com.huazheng.project.greenplum.model"); sqlSessionFactory.setTypeAliasesPackage("com.huazheng.project.greenplum.model");
return sqlSessionFactory.getObject(); return sqlSessionFactory.getObject();
} }
@Primary @Primary
@Bean(name = "greenplumTransactionManager") @Bean(name = "greenplumTransactionManager")
public DataSourceTransactionManager ds2TransactionManager(@Qualifier("greenplumDataSource") DataSource dataSource) { public DataSourceTransactionManager ds2TransactionManager(@Qualifier("greenplumDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource); return new DataSourceTransactionManager(dataSource);
} }
@Primary @Primary
@Bean(name = "greenplumSqlSessionTemplate") @Bean(name = "greenplumSqlSessionTemplate")
public SqlSessionTemplate ds2SqlSessionTemplate(@Qualifier("greenplumSqlSessionFactory") SqlSessionFactory sqlSessionFactory) { public SqlSessionTemplate ds2SqlSessionTemplate(@Qualifier("greenplumSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory); return new SqlSessionTemplate(sqlSessionFactory);
} }
} }
package com.huazheng.project.config; package com.huazheng.project.config;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
@Configuration @Configuration
@MapperScan(basePackages = "com.huazheng.project.hana.mapper", sqlSessionTemplateRef = "hanaSqlSessionTemplate") @MapperScan(basePackages = "com.huazheng.project.hana.mapper", sqlSessionTemplateRef = "hanaSqlSessionTemplate")
public class HanaConfig { public class HanaConfig {
//主数据源配置 ds1数据源 //主数据源配置 ds1数据源
@Primary @Primary
@Bean(name = "hanaDataSourceProperties") @Bean(name = "hanaDataSourceProperties")
@ConfigurationProperties(prefix = "spring.datasource.hana") @ConfigurationProperties(prefix = "spring.datasource.hana")
public DataSourceProperties ds1DataSourceProperties() { public DataSourceProperties ds1DataSourceProperties() {
return new DataSourceProperties(); return new DataSourceProperties();
} }
//主数据源 ds1数据源 //主数据源 ds1数据源
@Primary @Primary
@Bean(name = "hanaDataSource") @Bean(name = "hanaDataSource")
public DataSource ds1DataSource(@Qualifier("hanaDataSourceProperties") DataSourceProperties dataSourceProperties) { public DataSource ds1DataSource(@Qualifier("hanaDataSourceProperties") DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build(); return dataSourceProperties.initializeDataSourceBuilder().build();
} }
// 主数据源 ds1数据源 // 主数据源 ds1数据源
@Primary @Primary
@Bean("hanaSqlSessionFactory") @Bean("hanaSqlSessionFactory")
public SqlSessionFactory ds1SqlSessionFactory(@Qualifier("hanaDataSource") DataSource dataSource) throws Exception { public SqlSessionFactory ds1SqlSessionFactory(@Qualifier("hanaDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean(); MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource); sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/hana/*.xml")); sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/hana/*.xml"));
sqlSessionFactory.setPlugins(new Interceptor[] { new PaginationInterceptor(), sqlSessionFactory.setPlugins(new Interceptor[] { new PaginationInterceptor(),
// new PerformanceInterceptor() // new PerformanceInterceptor()
// .setFormat(true), // .setFormat(true),
}); });
sqlSessionFactory.setGlobalConfig(new GlobalConfig().setBanner(false)); sqlSessionFactory.setGlobalConfig(new GlobalConfig().setBanner(false));
sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml")); sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml"));
sqlSessionFactory.setTypeAliasesPackage("com.huazheng.project.hana.model"); sqlSessionFactory.setTypeAliasesPackage("com.huazheng.project.hana.model");
return sqlSessionFactory.getObject(); return sqlSessionFactory.getObject();
} }
@Primary @Primary
@Bean(name = "hanaTransactionManager") @Bean(name = "hanaTransactionManager")
public DataSourceTransactionManager ds1TransactionManager(@Qualifier("hanaDataSource") DataSource dataSource) { public DataSourceTransactionManager ds1TransactionManager(@Qualifier("hanaDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource); return new DataSourceTransactionManager(dataSource);
} }
@Primary @Primary
@Bean(name = "hanaSqlSessionTemplate") @Bean(name = "hanaSqlSessionTemplate")
public SqlSessionTemplate ds1SqlSessionTemplate(@Qualifier("hanaSqlSessionFactory") SqlSessionFactory sqlSessionFactory) { public SqlSessionTemplate ds1SqlSessionTemplate(@Qualifier("hanaSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory); return new SqlSessionTemplate(sqlSessionFactory);
} }
} }
package com.huazheng.project.config; package com.huazheng.project.config;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
@Configuration @Configuration
@MapperScan(basePackages = "com.huazheng.project.mssql.mapper", sqlSessionFactoryRef = "mssqlSqlSessionFactory") @MapperScan(basePackages = "com.huazheng.project.mssql.mapper", sqlSessionFactoryRef = "mssqlSqlSessionFactory")
public class MssqlConfig { public class MssqlConfig {
//主数据源配置 ds2数据源 //主数据源配置 ds2数据源
@Primary @Primary
@Bean(name = "mssqlDataSourceProperties") @Bean(name = "mssqlDataSourceProperties")
@ConfigurationProperties(prefix = "spring.datasource.mssql") @ConfigurationProperties(prefix = "spring.datasource.mssql")
public DataSourceProperties ds2DataSourceProperties() { public DataSourceProperties ds2DataSourceProperties() {
return new DataSourceProperties(); return new DataSourceProperties();
} }
//主数据源 ds2数据源 //主数据源 ds2数据源
@Primary @Primary
@Bean(name = "mssqlDataSource") @Bean(name = "mssqlDataSource")
public DataSource ds2DataSource(@Qualifier("mssqlDataSourceProperties") DataSourceProperties dataSourceProperties) { public DataSource ds2DataSource(@Qualifier("mssqlDataSourceProperties") DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build(); return dataSourceProperties.initializeDataSourceBuilder().build();
} }
// 主数据源 ds2数据源 // 主数据源 ds2数据源
@Primary @Primary
@Bean("mssqlSqlSessionFactory") @Bean("mssqlSqlSessionFactory")
public SqlSessionFactory ds2SqlSessionFactory(@Qualifier("mssqlDataSource") DataSource dataSource) throws Exception { public SqlSessionFactory ds2SqlSessionFactory(@Qualifier("mssqlDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean(); MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource); sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/mssql/*.xml")); sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/mssql/*.xml"));
sqlSessionFactory.setPlugins(new Interceptor[] { new PaginationInterceptor(), sqlSessionFactory.setPlugins(new Interceptor[] { new PaginationInterceptor(),
// new PerformanceInterceptor() // new PerformanceInterceptor()
// .setFormat(true), // .setFormat(true),
}); });
sqlSessionFactory.setGlobalConfig(new GlobalConfig().setBanner(false)); sqlSessionFactory.setGlobalConfig(new GlobalConfig().setBanner(false));
sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml")); sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml"));
sqlSessionFactory.setTypeAliasesPackage("com.huazheng.project.mssql.model"); sqlSessionFactory.setTypeAliasesPackage("com.huazheng.project.mssql.model");
return sqlSessionFactory.getObject(); return sqlSessionFactory.getObject();
} }
@Primary @Primary
@Bean(name = "mssqlTransactionManager") @Bean(name = "mssqlTransactionManager")
public DataSourceTransactionManager ds2TransactionManager(@Qualifier("mssqlDataSource") DataSource dataSource) { public DataSourceTransactionManager ds2TransactionManager(@Qualifier("mssqlDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource); return new DataSourceTransactionManager(dataSource);
} }
@Primary @Primary
@Bean(name = "mssqlSqlSessionTemplate") @Bean(name = "mssqlSqlSessionTemplate")
public SqlSessionTemplate ds2SqlSessionTemplate(@Qualifier("mssqlSqlSessionFactory") SqlSessionFactory sqlSessionFactory) { public SqlSessionTemplate ds2SqlSessionTemplate(@Qualifier("mssqlSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory); return new SqlSessionTemplate(sqlSessionFactory);
} }
} }
package com.huazheng.project.config; package com.huazheng.project.config;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
@Configuration @Configuration
@MapperScan(basePackages = "com.huazheng.project.mysql.mapper", sqlSessionFactoryRef = "mysqlSqlSessionFactory") @MapperScan(basePackages = "com.huazheng.project.mysql.mapper", sqlSessionFactoryRef = "mysqlSqlSessionFactory")
public class MysqlConfig { public class MysqlConfig {
//主数据源配置 ds2数据源 //主数据源配置 ds2数据源
@Primary @Primary
@Bean(name = "mysqlDataSourceProperties") @Bean(name = "mysqlDataSourceProperties")
@ConfigurationProperties(prefix = "spring.datasource.mysql") @ConfigurationProperties(prefix = "spring.datasource.mysql")
public DataSourceProperties ds2DataSourceProperties() { public DataSourceProperties ds2DataSourceProperties() {
return new DataSourceProperties(); return new DataSourceProperties();
} }
//主数据源 ds2数据源 //主数据源 ds2数据源
@Primary @Primary
@Bean(name = "mysqlDataSource") @Bean(name = "mysqlDataSource")
public DataSource ds2DataSource(@Qualifier("mysqlDataSourceProperties") DataSourceProperties dataSourceProperties) { public DataSource ds2DataSource(@Qualifier("mysqlDataSourceProperties") DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build(); return dataSourceProperties.initializeDataSourceBuilder().build();
} }
// 主数据源 ds2数据源 // 主数据源 ds2数据源
@Primary @Primary
@Bean("mysqlSqlSessionFactory") @Bean("mysqlSqlSessionFactory")
public SqlSessionFactory ds2SqlSessionFactory(@Qualifier("mysqlDataSource") DataSource dataSource) throws Exception { public SqlSessionFactory ds2SqlSessionFactory(@Qualifier("mysqlDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean(); MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource); sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/mysql/*.xml")); sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/mysql/*.xml"));
sqlSessionFactory.setPlugins(new Interceptor[] { new PaginationInterceptor(), sqlSessionFactory.setPlugins(new Interceptor[] { new PaginationInterceptor(),
// new PerformanceInterceptor() // new PerformanceInterceptor()
// .setFormat(true), // .setFormat(true),
}); });
sqlSessionFactory.setGlobalConfig(new GlobalConfig().setBanner(false)); sqlSessionFactory.setGlobalConfig(new GlobalConfig().setBanner(false));
sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml")); sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis/mybatis-config.xml"));
sqlSessionFactory.setTypeAliasesPackage("com.huazheng.project.mysql.model"); sqlSessionFactory.setTypeAliasesPackage("com.huazheng.project.mysql.model");
return sqlSessionFactory.getObject(); return sqlSessionFactory.getObject();
} }
@Primary @Primary
@Bean(name = "mysqlTransactionManager") @Bean(name = "mysqlTransactionManager")
public DataSourceTransactionManager ds2TransactionManager(@Qualifier("mysqlDataSource") DataSource dataSource) { public DataSourceTransactionManager ds2TransactionManager(@Qualifier("mysqlDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource); return new DataSourceTransactionManager(dataSource);
} }
@Primary @Primary
@Bean(name = "mysqlSqlSessionTemplate") @Bean(name = "mysqlSqlSessionTemplate")
public SqlSessionTemplate ds2SqlSessionTemplate(@Qualifier("mysqlSqlSessionFactory") SqlSessionFactory sqlSessionFactory) { public SqlSessionTemplate ds2SqlSessionTemplate(@Qualifier("mysqlSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory); return new SqlSessionTemplate(sqlSessionFactory);
} }
} }
package com.huazheng.project.greenplum.mapper; package com.huazheng.project.greenplum.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.huazheng.project.greenplum.model.GpAbc; import com.huazheng.project.greenplum.model.GpAbc;
public interface GpAbcMapper extends BaseMapper<GpAbc> { public interface GpAbcMapper extends BaseMapper<GpAbc> {
} }
\ No newline at end of file
package com.huazheng.project.greenplum.mapper; package com.huazheng.project.greenplum.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.huazheng.project.greenplum.model.GpTb1; import com.huazheng.project.greenplum.model.GpTb1;
public interface GpTb1Mapper extends BaseMapper<GpTb1> { public interface GpTb1Mapper extends BaseMapper<GpTb1> {
} }
\ No newline at end of file
package com.huazheng.project.greenplum.mapper; package com.huazheng.project.greenplum.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.huazheng.project.greenplum.model.GpTest1; import com.huazheng.project.greenplum.model.GpTest1;
public interface GpTest1Mapper extends BaseMapper<GpTest1> { public interface GpTest1Mapper extends BaseMapper<GpTest1> {
} }
\ No newline at end of file
package com.huazheng.project.greenplum.mapper; package com.huazheng.project.greenplum.mapper;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.huazheng.project.greenplum.model.GpAbc; import com.huazheng.project.greenplum.model.GpAbc;
import com.huazheng.project.greenplum.model.GpTb1; import com.huazheng.project.greenplum.model.GpTb1;
import com.huazheng.project.greenplum.model.GpTest1; import com.huazheng.project.greenplum.model.GpTest1;
public interface GreenplumMapper { public interface GreenplumMapper {
List<GpAbc> selectGpAbcList(@Param(Constants.WRAPPER) Wrapper<GpAbc> queryWrapper); List<GpAbc> selectGpAbcList(@Param(Constants.WRAPPER) Wrapper<GpAbc> queryWrapper);
List<GpTb1> selectGpTb1List(@Param(Constants.WRAPPER) Wrapper<GpTb1> queryWrapper); List<GpTb1> selectGpTb1List(@Param(Constants.WRAPPER) Wrapper<GpTb1> queryWrapper);
List<GpTest1> selectGpTest1List(@Param(Constants.WRAPPER) Wrapper<GpTest1> queryWrapper); List<GpTest1> selectGpTest1List(@Param(Constants.WRAPPER) Wrapper<GpTest1> queryWrapper);
} }
package com.huazheng.project.greenplum.model; package com.huazheng.project.greenplum.model;
import java.io.Serializable; import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@Data @Data
@Builder @Builder
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("mssql_abc") @TableName("mssql_abc")
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ApiModel(value="GpAbc对象", description="测试表") @ApiModel(value="GpAbc对象", description="测试表")
public class GpAbc extends Model<GpAbc> { public class GpAbc extends Model<GpAbc> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
@TableId("id") @TableId("id")
private Integer id; private Integer id;
@ApiModelProperty(value = "用户") @ApiModelProperty(value = "用户")
@TableField("username") @TableField("username")
private String username; private String username;
@ApiModelProperty(value = "密码") @ApiModelProperty(value = "密码")
@TableField("userpswd") @TableField("userpswd")
private String userpswd; private String userpswd;
@Override @Override
protected Serializable pkVal() { protected Serializable pkVal() {
return this.id; return this.id;
} }
} }
package com.huazheng.project.greenplum.model; package com.huazheng.project.greenplum.model;
import java.io.Serializable; import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@Data @Data
@Builder @Builder
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("mysql_tb1") @TableName("mysql_tb1")
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ApiModel(value="GpTb1对象", description="测试表") @ApiModel(value="GpTb1对象", description="测试表")
public class GpTb1 extends Model<GpTb1> { public class GpTb1 extends Model<GpTb1> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
@TableId("id") @TableId("id")
private Integer id; private Integer id;
@ApiModelProperty(value = "用户") @ApiModelProperty(value = "用户")
@TableField("username") @TableField("username")
private String username; private String username;
@ApiModelProperty(value = "密码") @ApiModelProperty(value = "密码")
@TableField("userpswd") @TableField("userpswd")
private String userpswd; private String userpswd;
@Override @Override
protected Serializable pkVal() { protected Serializable pkVal() {
return this.id; return this.id;
} }
} }
package com.huazheng.project.greenplum.model; package com.huazheng.project.greenplum.model;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@Data @Data
@Builder @Builder
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("hana_test1") @TableName("hana_test1")
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ApiModel(value="GpTest1对象", description="测试表") @ApiModel(value="GpTest1对象", description="测试表")
public class GpTest1 extends Model<GpTest1> { public class GpTest1 extends Model<GpTest1> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
@TableId("id") @TableId("id")
private Integer id; private Integer id;
@ApiModelProperty(value = "用户") @ApiModelProperty(value = "用户")
@TableField("\"user\"") @TableField("\"user\"")
private String user; private String user;
@ApiModelProperty(value = "密码") @ApiModelProperty(value = "密码")
@TableField("pswd") @TableField("pswd")
private String pswd; private String pswd;
@ApiModelProperty(value = "时间") @ApiModelProperty(value = "时间")
@TableField("times") @TableField("times")
private Date times; private Date times;
@Override @Override
protected Serializable pkVal() { protected Serializable pkVal() {
return this.id; return this.id;
} }
} }
package com.huazheng.project.hana.mapper; package com.huazheng.project.hana.mapper;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.huazheng.project.hana.model.HanaTest1; import com.huazheng.project.hana.model.HanaTest1;
public interface HanaMapper { public interface HanaMapper {
List<HanaTest1> selectHanaTest1List(@Param(Constants.WRAPPER) Wrapper<HanaTest1> queryWrapper); List<HanaTest1> selectHanaTest1List(@Param(Constants.WRAPPER) Wrapper<HanaTest1> queryWrapper);
} }
package com.huazheng.project.hana.model; package com.huazheng.project.hana.model;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@Data @Data
@Builder @Builder
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("test1") @TableName("test1")
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ApiModel(value="HanaTest1对象", description="测试表") @ApiModel(value="HanaTest1对象", description="测试表")
public class HanaTest1 extends Model<HanaTest1> { public class HanaTest1 extends Model<HanaTest1> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
@TableId("id") @TableId("id")
private Integer id; private Integer id;
@ApiModelProperty(value = "用户") @ApiModelProperty(value = "用户")
@TableField("user") @TableField("user")
private String user; private String user;
@ApiModelProperty(value = "密码") @ApiModelProperty(value = "密码")
@TableField("pswd") @TableField("pswd")
private String pswd; private String pswd;
@ApiModelProperty(value = "时间") @ApiModelProperty(value = "时间")
@TableField("times") @TableField("times")
private Date times; private Date times;
@Override @Override
protected Serializable pkVal() { protected Serializable pkVal() {
return this.id; return this.id;
} }
} }
package com.huazheng.project.mssql.mapper; package com.huazheng.project.mssql.mapper;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.huazheng.project.mssql.model.MsSqlAbc; import com.huazheng.project.mssql.model.MsSqlAbc;
public interface MsSqlMapper { public interface MsSqlMapper {
List<MsSqlAbc> selectMsSqlAbcList(@Param(Constants.WRAPPER) Wrapper<MsSqlAbc> queryWrapper); List<MsSqlAbc> selectMsSqlAbcList(@Param(Constants.WRAPPER) Wrapper<MsSqlAbc> queryWrapper);
} }
package com.huazheng.project.mssql.model; package com.huazheng.project.mssql.model;
import java.io.Serializable; import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@Data @Data
@Builder @Builder
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("abc") @TableName("abc")
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ApiModel(value="MsSqlAbc对象", description="测试表") @ApiModel(value="MsSqlAbc对象", description="测试表")
public class MsSqlAbc extends Model<MsSqlAbc> { public class MsSqlAbc extends Model<MsSqlAbc> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
@TableId("id") @TableId("id")
private Integer id; private Integer id;
@ApiModelProperty(value = "用户") @ApiModelProperty(value = "用户")
@TableField("username") @TableField("username")
private String username; private String username;
@ApiModelProperty(value = "密码") @ApiModelProperty(value = "密码")
@TableField("userpswd") @TableField("userpswd")
private String userpswd; private String userpswd;
@Override @Override
protected Serializable pkVal() { protected Serializable pkVal() {
return this.id; return this.id;
} }
} }
package com.huazheng.project.mysql.mapper; package com.huazheng.project.mysql.mapper;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.huazheng.project.mysql.model.MySqlTb1; import com.huazheng.project.mysql.model.MySqlTb1;
public interface MySqlMapper { public interface MySqlMapper {
List<MySqlTb1> selectMySqlTb1List(@Param(Constants.WRAPPER) Wrapper<MySqlTb1> queryWrapper); List<MySqlTb1> selectMySqlTb1List(@Param(Constants.WRAPPER) Wrapper<MySqlTb1> queryWrapper);
} }
package com.huazheng.project.mysql.model; package com.huazheng.project.mysql.model;
import java.io.Serializable; import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@Data @Data
@Builder @Builder
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("tb1") @TableName("tb1")
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ApiModel(value="MySqlTb1对象", description="测试表") @ApiModel(value="MySqlTb1对象", description="测试表")
public class MySqlTb1 extends Model<MySqlTb1> { public class MySqlTb1 extends Model<MySqlTb1> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
@TableId("id") @TableId("id")
private Integer id; private Integer id;
@ApiModelProperty(value = "用户") @ApiModelProperty(value = "用户")
@TableField("username") @TableField("username")
private String username; private String username;
@ApiModelProperty(value = "密码") @ApiModelProperty(value = "密码")
@TableField("userpswd") @TableField("userpswd")
private String userpswd; private String userpswd;
@Override @Override
protected Serializable pkVal() { protected Serializable pkVal() {
return this.id; return this.id;
} }
} }
package com.huazheng.project.service.impl; package com.huazheng.project.service.impl;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener; import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.huazheng.project.greenplum.mapper.GpAbcMapper; import com.huazheng.project.greenplum.mapper.GpAbcMapper;
import com.huazheng.project.greenplum.model.GpAbc; import com.huazheng.project.greenplum.model.GpAbc;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
@Service @Service
public class GpAbcServiceImpl { public class GpAbcServiceImpl {
private Log log = LogFactory.getLog(getClass()); private Log log = LogFactory.getLog(getClass());
@Autowired @Autowired
private GpAbcMapper mapper; private GpAbcMapper mapper;
@KafkaListener(topics = "sqlserver.test2.dbo.abc") @KafkaListener(topics = "sqlserver.test2.dbo.abc")
public void mssqlData(ConsumerRecord<?, ?> record) { public void mssqlData(ConsumerRecord<?, ?> record) {
Object value = record.value(); Object value = record.value();
if (value != null) { if (value != null) {
String data = value.toString(); String data = value.toString();
JSONObject json = JSONUtil.parseObj(data); JSONObject json = JSONUtil.parseObj(data);
JSONObject payload = json.getJSONObject("payload"); JSONObject payload = json.getJSONObject("payload");
String op = payload.getStr("op"); String op = payload.getStr("op");
JSONObject before = payload.getJSONObject("before"); JSONObject before = payload.getJSONObject("before");
JSONObject after = payload.getJSONObject("after"); JSONObject after = payload.getJSONObject("after");
if (op.equals("c")) { if (op.equals("c")) {
GpAbc bean = JSONUtil.toBean(after, GpAbc.class); GpAbc bean = JSONUtil.toBean(after, GpAbc.class);
mapper.insert(bean); mapper.insert(bean);
log.info("mssql insert --> " + bean); log.info("mssql insert --> " + bean);
} else if (op.equals("u")) { } else if (op.equals("u")) {
GpAbc bean = JSONUtil.toBean(after, GpAbc.class); GpAbc bean = JSONUtil.toBean(after, GpAbc.class);
mapper.updateById(bean); mapper.updateById(bean);
log.info("mssql update --> " + bean); log.info("mssql update --> " + bean);
} else if (op.equals("d")) { } else if (op.equals("d")) {
GpAbc bean = JSONUtil.toBean(before, GpAbc.class); GpAbc bean = JSONUtil.toBean(before, GpAbc.class);
mapper.deleteById(bean.getId()); mapper.deleteById(bean.getId());
log.info("mssql delete --> " + bean); log.info("mssql delete --> " + bean);
} }
} }
} }
} }
package com.huazheng.project.service.impl; package com.huazheng.project.service.impl;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener; import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.huazheng.project.greenplum.mapper.GpTb1Mapper; import com.huazheng.project.greenplum.mapper.GpTb1Mapper;
import com.huazheng.project.greenplum.model.GpTb1; import com.huazheng.project.greenplum.model.GpTb1;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
@Service @Service
public class GpTb1ServiceImpl { public class GpTb1ServiceImpl {
private Log log = LogFactory.getLog(getClass()); private Log log = LogFactory.getLog(getClass());
@Autowired @Autowired
private GpTb1Mapper mapper; private GpTb1Mapper mapper;
@KafkaListener(topics = "mysql.abc.abc.tb1") @KafkaListener(topics = "mysql.abc.abc.tb1")
public void mysqlData(ConsumerRecord<?, ?> record) { public void mysqlData(ConsumerRecord<?, ?> record) {
Object value = record.value(); Object value = record.value();
if (value != null) { if (value != null) {
String data = value.toString(); String data = value.toString();
JSONObject json = JSONUtil.parseObj(data); JSONObject json = JSONUtil.parseObj(data);
JSONObject payload = json.getJSONObject("payload"); JSONObject payload = json.getJSONObject("payload");
String op = payload.getStr("op"); String op = payload.getStr("op");
JSONObject before = payload.getJSONObject("before"); JSONObject before = payload.getJSONObject("before");
JSONObject after = payload.getJSONObject("after"); JSONObject after = payload.getJSONObject("after");
if (op.equals("c")) { if (op.equals("c")) {
GpTb1 bean = JSONUtil.toBean(after, GpTb1.class); GpTb1 bean = JSONUtil.toBean(after, GpTb1.class);
mapper.insert(bean); mapper.insert(bean);
log.info("mysql insert --> " + bean); log.info("mysql insert --> " + bean);
} else if (op.equals("u")) { } else if (op.equals("u")) {
GpTb1 bean = JSONUtil.toBean(after, GpTb1.class); GpTb1 bean = JSONUtil.toBean(after, GpTb1.class);
mapper.updateById(bean); mapper.updateById(bean);
log.info("mysql update --> " + bean); log.info("mysql update --> " + bean);
} else if (op.equals("d")) { } else if (op.equals("d")) {
GpTb1 bean = JSONUtil.toBean(before, GpTb1.class); GpTb1 bean = JSONUtil.toBean(before, GpTb1.class);
mapper.deleteById(bean.getId()); mapper.deleteById(bean.getId());
log.info("mysql delete --> " + bean); log.info("mysql delete --> " + bean);
} }
} }
} }
} }
package com.huazheng.project.service.impl; package com.huazheng.project.service.impl;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener; import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.huazheng.project.greenplum.mapper.GpTest1Mapper; import com.huazheng.project.greenplum.mapper.GpTest1Mapper;
import com.huazheng.project.greenplum.model.GpTest1; import com.huazheng.project.greenplum.model.GpTest1;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
@Service @Service
public class GpTest1ServiceImpl { public class GpTest1ServiceImpl {
private Log log = LogFactory.getLog(getClass()); private Log log = LogFactory.getLog(getClass());
@Autowired @Autowired
private GpTest1Mapper mapper; private GpTest1Mapper mapper;
@KafkaListener(topics = "test_topic_2") @KafkaListener(topics = "test_topic_2")
public void hanaData(ConsumerRecord<?, ?> record) { public void hanaData(ConsumerRecord<?, ?> record) {
Object value = record.value(); Object value = record.value();
if (value != null) { if (value != null) {
String data = value.toString(); String data = value.toString();
JSONObject json = JSONUtil.parseObj(data); JSONObject json = JSONUtil.parseObj(data);
JSONObject payload = json.getJSONObject("payload"); JSONObject payload = json.getJSONObject("payload");
String op = payload.getStr("TYPE"); String op = payload.getStr("TYPE");
JSONObject before = payload.getJSONObject("BEFORE"); JSONObject before = payload.getJSONObject("BEFORE");
JSONObject after = payload.getJSONObject("AFTER"); JSONObject after = payload.getJSONObject("AFTER");
if (op.equals("c")) { if (op.equals("c")) {
after.set("times", after.getStr("times").substring(0, 19)); after.set("times", after.getStr("times").substring(0, 19));
GpTest1 bean = JSONUtil.toBean(after, GpTest1.class); GpTest1 bean = JSONUtil.toBean(after, GpTest1.class);
mapper.insert(bean); mapper.insert(bean);
log.info("hana insert --> " + bean); log.info("hana insert --> " + bean);
} else if (op.equals("u")) { } else if (op.equals("u")) {
after.set("times", after.getStr("times").substring(0, 19)); after.set("times", after.getStr("times").substring(0, 19));
GpTest1 bean = JSONUtil.toBean(after, GpTest1.class); GpTest1 bean = JSONUtil.toBean(after, GpTest1.class);
mapper.updateById(bean); mapper.updateById(bean);
log.info("hana update --> " + bean); log.info("hana update --> " + bean);
} else if (op.equals("d")) { } else if (op.equals("d")) {
before.set("times", before.getStr("times").substring(0, 19)); before.set("times", before.getStr("times").substring(0, 19));
GpTest1 bean = JSONUtil.toBean(before, GpTest1.class); GpTest1 bean = JSONUtil.toBean(before, GpTest1.class);
mapper.deleteById(bean.getId()); mapper.deleteById(bean.getId());
log.info("hana delete --> " + bean); log.info("hana delete --> " + bean);
} }
} }
} }
} }
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.huazheng.project.greenplum.mapper.GreenplumMapper"> <mapper namespace="com.huazheng.project.greenplum.mapper.GreenplumMapper">
<select id="selectGpAbcList" resultType="GpAbc"> <select id="selectGpAbcList" resultType="GpAbc">
select * from mssql_abc ${ew.customSqlSegment} select * from mssql_abc ${ew.customSqlSegment}
</select> </select>
<select id="selectGpTb1List" resultType="GpTb1"> <select id="selectGpTb1List" resultType="GpTb1">
select * from mysql_tb1 ${ew.customSqlSegment} select * from mysql_tb1 ${ew.customSqlSegment}
</select> </select>
<select id="selectGpTest1List" resultType="GpTest1"> <select id="selectGpTest1List" resultType="GpTest1">
select * from hana_test1 ${ew.customSqlSegment} select * from hana_test1 ${ew.customSqlSegment}
</select> </select>
</mapper> </mapper>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.huazheng.project.hana.mapper.HanaMapper"> <mapper namespace="com.huazheng.project.hana.mapper.HanaMapper">
<select id="selectHanaTest1List" resultType="HanaTest1"> <select id="selectHanaTest1List" resultType="HanaTest1">
select * from test1 ${ew.customSqlSegment} select * from test1 ${ew.customSqlSegment}
</select> </select>
</mapper> </mapper>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.huazheng.project.mssql.mapper.MsSqlMapper"> <mapper namespace="com.huazheng.project.mssql.mapper.MsSqlMapper">
<select id="selectMsSqlAbcList" resultType="MsSqlAbc"> <select id="selectMsSqlAbcList" resultType="MsSqlAbc">
select * from abc ${ew.customSqlSegment} select * from abc ${ew.customSqlSegment}
</select> </select>
</mapper> </mapper>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.huazheng.project.mysql.mapper.MySqlMapper"> <mapper namespace="com.huazheng.project.mysql.mapper.MySqlMapper">
<select id="selectMySqlTb1List" resultType="MySqlTb1"> <select id="selectMySqlTb1List" resultType="MySqlTb1">
select * from tb1 ${ew.customSqlSegment} select * from tb1 ${ew.customSqlSegment}
</select> </select>
</mapper> </mapper>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration <!DOCTYPE configuration
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd"> "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration> <configuration>
<settings> <settings>
<setting name="cacheEnabled" value="false" /> <setting name="cacheEnabled" value="false" />
<setting name="lazyLoadingEnabled" value="false" /> <setting name="lazyLoadingEnabled" value="false" />
<setting name="aggressiveLazyLoading" value="true" /> <setting name="aggressiveLazyLoading" value="true" />
<setting name="callSettersOnNulls" value="true"/> <setting name="callSettersOnNulls" value="true"/>
<setting name="logImpl" value="STDOUT_LOGGING" /> <setting name="logImpl" value="STDOUT_LOGGING" />
<!-- <setting name="logImpl" value="LOG4J"/> --> <!-- <setting name="logImpl" value="LOG4J"/> -->
</settings> </settings>
</configuration> </configuration>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论