概述
- MyBatis是一款优秀的持久层框架
- MyBatis支持定制化SQL、存储过程和高级映射
- JPA Or MyBatis
- JPA:数据操作都比较简单
- MyBatis:DBA需要对SQL进行审核,复杂SQL
- Spring + MyBatis
- MyBatis Spring Adapter
- MyBatis Spring-Boot-Starter
简单使用
pom.xml
1 | <dependency> |
schema.sql
1 | create table t_coffee ( |
application.properties
1 | mybatis.type-handlers-package=me.zhongmingmao.mybatis.handler |
Coffee
1 |
|
MoneyTypeHandler
1 | package me.zhongmingmao.mybatis.handler; |
CoffeeMapper
1 | package me.zhongmingmao.mybatis.mapper; |
主程序
1 | 4j |
1 | Save 1 Coffee: Coffee(id=1, name=espresso, price=CNY 20.00, createTime=null, updateTime=null) |
MyBatis Generator
- MyBatis代码生成器
- 根据数据表来生成相关代码
- POJO
- Mapper接口
- SQL Map XML
pom.xml
1 | <dependency> |
generatorConfig.xml
1 | <generatorConfiguration> |
目录结构
1 | src/main |
生成MyBatis样板代码
1 | List<String> warnings = new ArrayList<>(); |
目录结构
1 | src/main |
application.properties
1 | mybatis.mapper-locations=classpath*:/mapper/**/*.xml |
主程序
1 | Coffee espresso = new Coffee() |
1 | Coffee Coffee [Hash = 981159997, id=1, name=espresso, price=CNY 20.00, createTime=Sun Sep 15 15:32:52 CST 2019, updateTime=Sun Sep 15 15:32:52 CST 2019] |
MyBatis PageHelper
- 支持多种数据库
- 支持多种分页方式
- SpringBoot支持(pagehelper-spring-boot-starter)
pom.xml
1 | <dependency> |
data.sql
1 | insert into t_coffee (name, price, create_time, update_time) values ('espresso', 2000, now(), now()); |
CoffeeMapper
1 |
|
application.properties
1 | # mybatis |
主程序
1 | coffeeMapper.findAllWithRowBounds(new RowBounds(1, 3)) |
1 | Page(1) Coffee Coffee(id=1, name=espresso, price=CNY 20.00, createTime=Sun Sep 15 16:12:50 CST 2019, updateTime=Sun Sep 15 16:12:50 CST 2019) |