这两天启动了一个新项目因为项目构成员一直都利用的是mybatis,固然小我私家较量喜欢jpa这种极简的模式,软件开发,可是为了项目保持统一性技能选型照旧定了 mybatis。到网上找了一下关于spring boot和mybatis组合的相关资料,各类百般的形式都有,看的人心累,团结了mybatis的官方demo和文档终于找到了最简的两种模式,花了一天时间总结后分享出来。
orm框架的本质是简化编程中操纵数据库的编码,成长到此刻根基上就剩两家了,一个是宣称可以不消写一句SQL的hibernate,一个是可以机动调试动态sql的mybatis,两者各有特点,在企业级系统开拓中可以按照需求机动利用。发明一个有趣的现象:传统企业多半喜欢利用hibernate,互联网行业凡是利用mybatis。
hibernate特点就是所有的sql都用Java代码来生成,不消跳出措施去写(看)sql,有着编程的完整性,成长到最顶端就是spring data jpa这种模式了,根基上按照要领名就可以生成对应的sql了,有不太相识的可以看我的上篇文章springboot(五):spring data jpa的利用。
mybatis初期利用较量贫苦,需要各类设置文件、实体类、dao层映射关联、尚有一大推其它设置。虽然mybatis也发明白这种漏洞,初期开拓了generator可以按照表功效自动出产实体类、设置文件和dao层代码,可以减轻一部门开拓量;后期也举办了大量的优化可以利用注解了,自动打点dao层和设置文件等,成长到最顶端就是本日要讲的这种模式了,mybatis-spring-boot-starter就是springboot+mybatis可以完全注解不消设置文件,也可以简朴设置轻松上手。
此刻想想spring boot 就是牛逼呀,任何对象只要关联到spring boot都是化繁为简。
mybatis-spring-boot-starter
官方说明:MyBatis Spring-Boot-Starter will help you use MyBatis with Spring Boot
其实就是myBatis看spring boot这么火热也开拓出一套办理方案来凑凑热闹,但这一凑确实办理了许多问题,利用起来确实顺畅了很多。mybatis-spring-boot-starter主要有两种办理方案,一种是利用注解办理一切问题,一种是简化后的老传统。
虽然任何模式都需要首先引入mybatis-spring-boot-starter的pom文件,此刻最新版本是1.1.1(恰好快到双11了 :)。
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency>
好了下来别离先容两种开拓模式。
无设置文件注解版
就是一切利用注解搞定。
1 添加相关maven文件
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> </dependencies>
完整的pom包这里就不贴了,各人直接看源码。
2、application.properties 添加相关设置
mybatis.type-aliases-package=com.neo.entity spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.datasource.url = jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf-8 spring.datasource.username = root spring.datasource.password = root
springboot会自动加载spring.datasource.*相关设置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper中,对了你一切都不消管了,直接拿起来利用就行了。
在启动类中添加对mapper包扫描@MapperScan。
@SpringBootApplication @MapperScan("com.neo.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
可能直接在Mapper类上面添加注解@Mapper,发起利用上面那种,否则每个mapper加个注解也挺贫苦的。
3、开拓Mapper