1.在pom文件中添加依赖
< dependency>
< groupId> org.elasticsearch.plugin</ groupId>
< artifactId> x-pack-sql-jdbc</ artifactId>
</ dependency>
2.配置文件中添加配置
datasource
basedata
es:
url: jdbc:es://ip:port
driverClassName: org.elasticsearch.xpack.sql.jdbc.EsDriver
initialSize: 5
minIdle: 1
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
创建数据库配置类
@Configuration
@MapperScan ( basePackages = "gep.dao.mapper.es" , sqlSessionFactoryRef = "sqlSessionFactoryForEs" )
public class EsXpackMybatisConfig {
@Autowired
PageInterceptor interceptor;
@Bean ( name = "esDataSource" , destroyMethod = "close" , initMethod = "init" )
@ConfigurationProperties ( prefix = "datasource.database.es" )
public DruidDataSource esDataSource ( ) {
return new DruidDataSource ( ) ;
}
@Bean ( "sqlSessionFactoryForEs" )
public SqlSessionFactory sqlSessionFactoryForEs ( @Qualifier ( "esDataSource" ) DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean ( ) ;
sessionFactoryBean. setDataSource ( dataSource) ;
PageAutoDialect . registerDialectAlias ( "es" , MySqlDialect . class ) ;
sessionFactoryBean. setPlugins ( new Interceptor [ ] { interceptor} ) ;
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver ( ) ;
Resource [ ] esResources = resolver. getResources ( "classpath:mapper/es/*.xml" ) ;
sessionFactoryBean. setMapperLocations ( esResources) ;
return sessionFactoryBean. getObject ( ) ;
}
@Bean ( "sqlSessionTemplateForEs" )
public SqlSessionTemplate sqlSessionTemplateForEs ( @Qualifier ( "sqlSessionFactoryForEs" ) SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate ( sqlSessionFactory) ;
}
}