如今業界比較流行的數據操做層框架 MyBatis,下面就講解下 Springboot 如何整合 MyBatis,這裏使用的是xml配置SQL而不是用註解。主要是 SQL 和業務代碼應該隔離,方便和 DBA 校對 SQL。java
https://github.com/JasperZXY/TestSpringCloud/tree/master/boot-featuremysql
因爲我不少功能放在同一個項目裏面,因此代碼看起來沒有那麼清晰,不過將就看仍是能夠的。git
src/ +- main/ +- java/ +- zxy.demo.springboot.mybatis +- entity +- dao +- web |- MainApplicion.java +- resources/ +- mapper |- application.properties
數據庫用的是MySQLgithub
CREATE DATABASE test_spring_boot;
CREATE TABLE `user` ( `id` int(11) NOT NULL COMMENT '主鍵', `name` varchar(64) NOT NULL COMMENT '姓名', `birthday` date DEFAULT NULL COMMENT '生日', `address` varchar(256) DEFAULT NULL COMMENT '地址', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
若是沒有mybatis-generator,能夠下載一個。
mybatis-generator的下載地址web
使用mybatis-generator工具生成相關文件,實體對象、dao接口、xml文件。spring
添加必要的依賴sql
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <mybatis-spring-boot.version>1.2.0</mybatis-spring-boot.version> <mysql-connector.version>5.1.39</mysql-connector.version> </properties> <dependencies> <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>${mybatis-spring-boot.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql-connector.version}</version> </dependency> </dependencies>
打開 application.properties 文件, 修改相應的數據源配置,好比數據源地址、帳號、密碼等,以下數據庫
spring.datasource.url=jdbc:mysql://localhost:3306/test_spring_boot?useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver mybatis.typeAliasesPackage=zxy.demo.springboot.boot_feature.entity mybatis.mapperLocations=classpath:mapper/*.xml
注意根據本身的實現項目目錄進行相應的修改。瀏覽器
須要配置dao文件,也即操做數據表的接口。springboot
經過@MapperScan註解進行dao文件的掃描,以下
// MyBatis 支持 @MapperScan("zxy.demo.springboot.mybatis.dao") @SpringBootApplication public class MainApplicion { public static void main(String[] args) throws Exception { SpringApplication.run(MainApplicion.class, args); } }
@RequestMapping("user") @RestController public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/list/all") public Object listAll() { return userMapper.selectByExample(new UserExample()); } }
右鍵運行 Application 應用啓動類的 main 函數,而後在瀏覽器訪問便可看到數據。
http://localhost:8080/user/list/all
[ { id: 1, name: "張三", birthday: 1491667200000, address: "深圳" } ]
SpringMVC是經過xml進行配置,經過配置DataSource、SqlSessionFactoryBean、MapperScannerConfigurer來完成MyBatis的整合。
而SpringBoot是經過application.properties配置數據源、實體bean包名、mapper文件位置和@MapperScan
註解來配置掃描的dao路徑,從而實現MyBatis的整合。