文档章节

spring boot 整和 mybatis

这是一只小小鸟
 这是一只小小鸟
发布于 04/14 15:41
字数 404
阅读 16
收藏 3

spring boot 及 spring mvc 的简化配置及内容升华版。

在 spring boot 中如何整和mybatis 呢?

第一部:maven 依赖(可以在创建 spring boot 项目是勾选中)

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>2.0.1</version>
</dependency>

第二部:在application.yml 中配置 mybatis 

mybatis:
  type-aliases-package: com.example.demo.entity
  mapper-locations: classpath:mapper/*.xml

对就是这么简单就可以完成配置。到现在已经完全抛弃 mybatis 自己的核心配置文件了。

番外篇:mybatis 有一个增强版框架 mybatis-plus 我们也可以整和它。

 

第一部当然也是要添加依赖

<!--Mybatis-Plus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>2.2.0</version>
 </dependency>

然后使用@Configuration 添加配置

@Configuration
@EnableConfigurationProperties(MybatisProperties.class)
public class MyBatisPulsConfig {

	@Autowired
	private DataSource dataSource;
	
	@Autowired
	private MybatisProperties properties;
	
	@Autowired
	@SuppressWarnings("unused")
	private ResourceLoader resourceLoader = new DefaultResourceLoader();
	
	@Autowired(required = false)
	private Interceptor[] interceptors;
	
	@Autowired(required = false)
    private DatabaseIdProvider databaseIdProvider;
	
	@Bean
	public PaginationInterceptor paginationInterceptor() {
		PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
		paginationInterceptor.setDialectType("mysql");
		return paginationInterceptor;
	}
	
	@Bean
	public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean() throws IOException{
		MybatisSqlSessionFactoryBean mybatisPuls = new  MybatisSqlSessionFactoryBean();
		
		mybatisPuls.setDataSource(dataSource); // 设置数据源
		mybatisPuls.setVfs(SpringBootVFS.class);
		
		// 使用 PathMatchingResourcePatternResolver 避免路径找不到
		PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		mybatisPuls.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
		
		if(StringUtils.hasText(this.properties.getConfigLocation()));
		if(!ObjectUtils.isEmpty(this.interceptors)) {
			mybatisPuls.setPlugins(this.interceptors);
		}
		
		GlobalConfiguration  globalConfig = new GlobalConfiguration();
		globalConfig.setDbType(DBType.MYSQL.name());	//设置数据库类型
		//使用ID_WORKER_STR,因为前后端分离使用整形,前端JS会有精度丢失
		globalConfig.setIdType(IdType.ID_WORKER_STR.getKey());
		globalConfig.setSqlInjector(new AutoSqlInjector());
		MybatisConfiguration mc = new MybatisConfiguration();
		 // 对于完全自定义的mapper需要加此项配置,才能实现下划线转驼峰
		mc.setMapUnderscoreToCamelCase(true);
		mc.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
		
		mybatisPuls.setConfiguration(mc);
		
		if(this.databaseIdProvider != null) {
			mybatisPuls.setDatabaseIdProvider(this.databaseIdProvider);
		}
		if(StringUtils.hasLength(this.properties.getTypeAliasesPackage())) {
			mybatisPuls.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());
		}
		if(StringUtils.hasLength(this.properties.getTypeHandlersPackage())) {
			mybatisPuls.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());
		}
		if(!ObjectUtils.isEmpty(this.properties.resolveMapperLocations())) {
			mybatisPuls.setMapperLocations(this.properties.resolveMapperLocations());
		}
		return mybatisPuls;
	}
	
}

 

© 著作权归作者所有

这是一只小小鸟

这是一只小小鸟

粉丝 1
博文 24
码字总数 12816
作品 0
武汉
私信 提问
Mybatis Spring Boot 1.2.2 和 1.3.1 发布

Mybatis Spring Boot 1.2.2 和 1.3.1 已发布,Mybatis Spring Boot 是 MyBatis 和 Spring Boot 的集成。更新如下: mybatis-spring-boot-1.2.2 升级至 Spring Boot 1.4.7.RELEASE #172 升级至......

淡漠悠然
2017/08/21
1K
4
Spring Boot 整合 MyBatis

最近项目原因可能会继续开始使用MyBatis,已经习惯于spring-data的风格,再回头看xml的映射配置总觉得不是特别舒服,接口定义与映射离散在不同文件中,使得阅读起来并不是特别方便。 Spring...

中关村的老男孩
06/24
0
0
Mybatis Spring Boot 1.0.1 正式发布

Mybatis Spring Boot 1.0.1 正式发布了。 Mybatis Spring Boot 是 MyBatis 和 Spring Boot 的集成。 下载地址: https://github.com/mybatis/mybatis-spring-boot/archive/mybatis-spring-bo......

淡漠悠然
2016/03/15
3.1K
8
MyBatis Spring Boot 1.3.2 发布,功能增强

MyBatis Spring Boot 1.3.2 发布了。Mybatis Spring Boot 是 MyBatis 和 Spring Boot 的集成。更新如下: 更新至 Spring Boot 1.5.10 #220 更新至 MyBatis 3.4.6 #212 更新至 MyBatis-Spring......

达尔文
2018/03/15
2.6K
3
Mybatis Spring Boot

Mybatis Spring Boot 是 MyBatis 和 Spring Boot 的集成。可以幫助你快速在 Spring Boot 項目中集成 MyBatis 。 依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifac......

匿名
2015/11/19
0
4

没有更多内容

加载失败,请刷新页面

加载更多

分布式Session的实现方式

JWT Token 使用 JWT Token 储存用户身份,然后再从数据库或者 cache 中获取其他的信息。这样无论请求分配到哪个服务器都无所谓。 Tomcat + Redis 在 tomcat 的配置文件中配置: <Valve class...

禅明
12分钟前
0
0
Android饼图 PieChart

PieChart 饼图,android 图表。会根据定义PieChartView的大小自动居中,所以如果要调整位置,只需要在xml更改PieChartView位置大小即可。 https://github.com/ccMagic/PieChart 1、先看一下效...

ccMagic
16分钟前
1
0
说说我当初是如何学Linux的

今天我就说说我当初是如何从一名普通桌面维护工程师,通过学习和努力转成Linux运维工程师的,以及作为Linux运维工程师需要一些什么技能和知识,希望可以帮到一些对Linux有兴趣或者想往Linux...

Linux就该这么学
16分钟前
1
0
Tomcat启动异常Unable to register MBean [HikariDataSource (null)]:InstanceAlreadyExistsException

Unable to register MBean [HikariDataSource (null)] with key 'xxx'; nested exception is javax.management.InstanceAlreadyExistsException: com.zaxxer.hik ari:name=baseDataSource,ty......

sunranhou
21分钟前
1
0
qt从普通线程发信号到UI线程

加入从当前一个普通线程发送信号到ui,更新Ui只能使用Qt::BlockingQueuedConnection,用Qt::QueuedConnection会一会有用一会没用,并且会导致崩溃。 connect(this, &Task::startTask, this, ...

青黑
42分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部