Mybatis-plus_hello
1. 配置文件
config.MyBatisPlus-Config
1 | // 标记为配置文件 |
dao.BlogMapper 被扫描文件
1 | // 作为仓库 |
2. 自动填充
config.MyMetaObjectHandler
1 | /** |
3. 分页插件
config.MyBatisPlus-Config
1 | // 在config中配置分页插件 |
具体使用
1 | // 使用Page来指定分页 |
4. 自定义SQL
1. 注解方式
dao.UserMapper 声明并定义方法
1 | // 在Mapper文件中直接定义方法 |
最后通过service.Impl 通过mapper调用
1 | userMapper.updateUserInfo(); |
2. XML方式
application.yml 指定mapper.xml位置
1 | mybatis-plus: |
dao.UserMapper 声明方法
1 | // 在Mapper文件中直接定义方法 |
UserMapper.xml 定义SQL
1 |
|
最后通过service.Impl 通过mapper调用
1 | userMapper.updateUserInfo(); |
5. 时间查询
1 | // apply 拼接sql 语句 |
6. 遇到的一些坑
1. Update User表中的userName时,sql拼接会缺失userName
1 | // 主要代码 |
解决方式:使用自定义sql : updateUserInfo
dao.UserMapper
1 |
|
最后通过service.Impl 通过mapper调用
1 | userMapper.updateUserInfo(); |
2. wrapper.select 获取部分字段时实体类与数据库映射失败
1 | // 如果实体类与数据库字段是驼峰式对应,则没有问题 |
解决方法1:使用select(Class entityClass, Predicate predicate)
1 | // 第一个参数为查询的实体类 |
解决方法2:使用select(String column)手动拼接字段
1 | wrapper.select("post_time AS blogPostTime"); |
题外话:distinct的使用
1 | // 直接加在 数据库字段名前即可 |
3. 主键自增问题
1 | public class Tag { |