您好,欢迎来到年旅网。
搜索
您的当前位置:首页Spring Boot 集成MyBatis

Spring Boot 集成MyBatis

来源:年旅网


Spring Boot 集成MyBatis

在集成MyBatis前,我们先配置一个druid数据源。 Spring Boot 集成druid

druid有很多个配置选项,使用Spring Boot 的配置文件可以方便的配置druid。 在application.yml配置文件中写上: spring:

datasource: name: test

url: jdbc:mysql://192.168.16.137:3306/test username: root password:

# 使用druid数据源

type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver filters: stat maxActive: 20 initialSize: 1 maxWait: 60000 minIdle: 1

timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false

poolPreparedStatements: true maxOpenPreparedStatements: 20

这里通过type: com.alibaba.druid.pool.DruidDataSource配置即可! Spring Boot 集成MyBatis

Spring Boot 集成MyBatis有两种方式,一种简单的方式就是使用MyBatis官方提供的: mybatis-spring-boot-starter

另外一种方式就是仍然用类似mybatis-spring的配置方式,这种方式需要自己写一些代码,但是可以很方便的控制MyBatis的各项配置。

1 / 5

一、mybatis-spring-boot-starter方式 在pom.xml中添加依赖:

org.mybatis.spring.boot mybatis-spring-boot-starter 1.0.0

mybatis-spring-boot-starter依赖树如下:

其中mybatis使用的3.3.0版本,可以通过:

3.3.0属性修改默认版本。 mybatis-spring使用版本1.2.3,可以通过:

1.2.3修改默认版本。 在application.yml中增加配置: mybatis:

mapperLocations: classpath:mapper/*.xml typeAliasesPackage: tk.mapper.model 除了上面常见的两项配置,还有:

   

mybatis.config:mybatis-config.xml配置文件的路径 mybatis.typeHandlersPackage:扫描typeHandlers的包 mybatis.checkConfigLocation:检查配置文件是否存在

mybatis.executorType:设置执行模式(SIMPLE, REUSE, BATCH),默认为SIMPLE

二、mybatis-spring方式

这种方式和平常的用法比较接近。需要添加mybatis依赖和mybatis-spring依赖。 然后创建一个MyBatisConfig配置类:

2 / 5

/** * MyBatis基础配置 */ @Configuration @EnableTransactionManagement public class MyBatisConfig implements TransactionManagementConfigurer { @Autowired DataSource dataSource; @Bean(name = \"sqlSessionFactory\") public SqlSessionFactory sqlSessionFactoryBean() { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setTypeAliasesPackage(\"tk.mybatis.springboot.model\"); //分页插件 PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); properties.setProperty(\"reasonable\", \"true\"); properties.setProperty(\"supportMethodsArguments\", \"true\"); properties.setProperty(\"returnPageInfo\", \"check\"); properties.setProperty(\"params\", \"count=countSql\"); pageHelper.setProperties(properties); //添加插件 bean.setPlugins(new Interceptor[]{pageHelper}); //添加XML目录 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); try { bean.setMapperLocations(resolver.getResources(\"classpath:mapper/*.xml\")); return bean.getObject(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } @Bean public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) { 3 / 5

return new SqlSessionTemplate(sqlSessionFactory); } @Bean @Override public PlatformTransactionManager annotationDrivenTransactionManager() { return new DataSourceTransactionManager(dataSource); } } 上面代码创建了一个SqlSessionFactory和一个SqlSessionTemplate,为了支持注解事务,增加了@EnableTransactionManagement注解,并且反回了一个PlatformTransactionManagerBean。 另外应该注意到这个配置中没有MapperScannerConfigurer,如果我们想要扫描MyBatis的Mapper接口,我们就需要配置这个类,这个配置我们需要单独放到一个类中。 /** * MyBatis扫描接口 * */ @Configuration //TODO 注意,由于MapperScannerConfigurer执行的比较早,所以必须有下面的注解 @AutoConfigureAfter(MyBatisConfig.class) public class MyBatisMapperScannerConfig { @Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); mapperScannerConfigurer.setSqlSessionFactoryBeanName(\"sqlSessionFactory\"); mapperScannerConfigurer.setBasePackage(\"tk.mybatis.springboot.mapper\"); return mapperScannerConfigurer; } } 这个配置一定要注意@AutoConfigureAfter(MyBatisConfig.class),必须有这个配置,否则会有异常。原因就是这个类执行的比较早,由于sqlSessionFactory还不存在,后续执行出错。 做好上面配置以后就可以使用MyBatis了。 关于分页插件和通用Mapper集成 分页插件作为插件的例子在上面代码中有。 4 / 5

通用Mapper配置实际就是配置MapperScannerConfigurer的时候使用

tk.mybatis.spring.mapper.MapperScannerConfigurer即可,配置属性使用Properties。 Spring Boot集成MyBatis的基础项目

我上传到github一个采用第二种方式的集成项目,并且集成了分页插件和通用Mapper,项目包含了简单的配置和操作,仅作为参考。

项目地址:https://github.com/abel533/MyBatis-Spring-Boot 分页插件和通用Mapper的相关信息可以通过上面地址找到。 本文作者:isea533

5 / 5

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务