一、使用mybatis-spring-boot-starter
1、添加依赖
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.0.0</version></dependency>
2、启动时导入指定的sql(application.properties)
spring.datasource.schema=import.sql
3、annotation形式
@SpringBootApplication@MapperScan("sample.mybatis.mapper")public class SampleMybatisApplication implements CommandLineRunner { @Autowired private CityMapper cityMapper; public static void main(String[] args) { SpringApplication.run(SampleMybatisApplication.class, args); } @Override public void run(String... args) throws Exception { System.out.println(this.cityMapper.findByState("CA")); }}
4、xml方式
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <typeAliases> <package name="sample.mybatis.domain"/> </typeAliases> <mappers> <mapper resource="sample/mybatis/mapper/CityMapper.xml"/> </mappers></configuration>
application.properties
spring.datasource.schema=import.sqlmybatis.config=mybatis-config.xml
mapper
@Componentpublic class CityMapper { @Autowired private SqlSessionTemplate sqlSessionTemplate; public City selectCityById(long id) { return this.sqlSessionTemplate.selectOne("selectCityById", id); }}
二、手工集成
1、annotation方式
@Configuration@MapperScan("com.xixicat.modules.dao")@PropertySources({ @PropertySource(value = "classpath:application.properties", ignoreResourceNotFound = true), @PropertySource(value = "file:./application.properties", ignoreResourceNotFound = true) })public class MybatisConfig { @Value("${name:}") private String name; @Value("${database.driverClassName}") private String driverClass; @Value("${database.url}") private String jdbcUrl; @Value("${database.username}") private String dbUser; @Value("${database.password}") private String dbPwd; @Value("${pool.minPoolSize}") private int minPoolSize; @Value("${pool.maxPoolSize}") private int maxPoolSize; @Bean public Filter characterEncodingFilter() { CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); return characterEncodingFilter; } @Bean(destroyMethod = "close") public DataSource dataSource(){ HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setDriverClassName(driverClass); hikariConfig.setJdbcUrl(jdbcUrl); hikariConfig.setUsername(dbUser); hikariConfig.setPassword(dbPwd); hikariConfig.setPoolName("springHikariCP"); hikariConfig.setAutoCommit(false); hikariConfig.addDataSourceProperty("cachePrepStmts", "true"); hikariConfig.addDataSourceProperty("prepStmtCacheSize", "250"); hikariConfig.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); hikariConfig.addDataSourceProperty("useServerPrepStmts", "true"); hikariConfig.setMinimumIdle(minPoolSize); hikariConfig.setMaximumPoolSize(maxPoolSize); hikariConfig.setConnectionInitSql("SELECT 1"); HikariDataSource dataSource = new HikariDataSource(hikariConfig); return dataSource; } @Bean public PlatformTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSource()); } @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); sessionFactory.setFailFast(true); sessionFactory.setConfigLocation(new ClassPathResource("mybatis-config.xml")); return sessionFactory.getObject(); }}
点评
这种方式有点别扭,而且配置不了拦截式事务拦截,只能采用注解声明,有些冗余
2、xml方式
数据源
<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://.xixicat"} )@ImportResource("classpath:applicationContext-mybatis.xml")@EnableAutoConfigurationpublic class AppMain { // 用于处理编码问题 @Bean public Filter characterEncodingFilter() { CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); return characterEncodingFilter; } //文件下载 @Bean public HttpMessageConverters restFileDownloadSupport() { ByteArrayHttpMessageConverter arrayHttpMessageConverter = new ByteArrayHttpMessageConverter(); return new HttpMessageConverters(arrayHttpMessageConverter); } public static void main(String[] args) throws Exception { SpringApplication.run(AppMain.class, args); }}
点评
跟传统的方式集成最为直接,而且事务配置也比较容易上手
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。