mybatis-plus初体验
自2019年开始,一个封装了mybatis的框架,mybatis-plus活跃起来了。它让写代码变得更简单。体验这个mybatis-plus 不是因为这个东西有多好。纯粹就是体验而已。
以前用mybatis的时候,通常会自己写个脚手架,自动生成相应的xml,mapper, service,controller,页面,甚至部分JS, 采用这种自动生成代码的方式,在很大程度上减轻了开发的工作量,对很多只要增删改查的部分,完全不需要手写代码。
mybatis-plus的初衷也学也是这样。它更像 JPA, 或者说某些地方模仿了JPA,用mybatis框架来实现而已。所以他有一个方便的地方,如果表结构变化了,不需要重新生成XML文件等,只需要修改对应的实体类,实现与表的映射。与JPA(Hibernate JAP)太像了。
我在spring boot里面体验使用了下,很简单。有mybatis基础的人,几乎是零成本学习。
一. 引入POM文件
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency>
二. 修改spring boot 配置文件
配置数据库,实体类位置,驼峰规则等。
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://192.168.222.150:3306/shop_user?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=123456 mybatis-plus.mapper-locations=classpath:/mapper/*.xml mybatis-plus.type-aliases-package=com.yihaomen.mybatisplus.entity.* mybatis-plus.configuration.map-underscore-to-camel-case=true logging.level.com.yihaomen.mybatisplus.mapper=debug
三. mapper 文件编写
mapper只需要继承baseMapper实现,其实与以前自己用mybatis定义baseMapper相似
package com.yihaomen.mybatisplus.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.yihaomen.mybatisplus.entity.User; public interface UserMapper extends BaseMapper<User> { }
四. service 编写
serive 接口继承 IService 接口,实现类 继承 ServiceImpl 接口
package com.yihaomen.mybatisplus.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.yihaomen.mybatisplus.entity.User; public interface IUserService extends IService<User> { Page<User> customizePagination(long page, long size, User user) ; }
package com.yihaomen.mybatisplus.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yihaomen.mybatisplus.entity.User; import com.yihaomen.mybatisplus.mapper.UserMapper; import com.yihaomen.mybatisplus.service.IUserService; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @Service public class UserService extends ServiceImpl<UserMapper, User> implements IUserService { @Override public Page<User> customizePagination(long page, long size, User user) { QueryWrapper<User> condiction = new QueryWrapper<>(); condiction.like(StringUtils.hasText(user.getName()), "username", user.getName()); condiction.eq("points", 1); Page<User> pageContent = this.page(new Page<User>(page, size), condiction); return pageContent; } }
其实你会发现 mybatis-plus 就是我们以前用 mybatis 编程的方式,只是把公共的部分抽离出来了, 我们自己写项目都会这么做,只是mybatis-plus 做得更好,也更强大而已.
我的个人观点是,mybatis-plus是一种选择,但并非唯一。 即使只用原生的 mybatis, 也是很好的选择。JPA 也很好,国外用得很多,完全的ORM,也可以自定义SQL. mybatis-plus 在mybatis与JPA之间,显得有点不伦不类,但这也阻止不了它现在的火热,中国人用得比较多。
From:一号门
Previous:bootstrap与metisMenu菜单不折叠的处理办法
Next:mybatis-plus代码生成器
COMMENTS