mybatis-plus初体验

摘要: mybatis-plus是一种选择,但并非唯一。 即使只用原生的 mybatis, 也是很好的选择。JPA 也很好,国外用得很多,完全的ORM,也可以自定义SQL. mybatis-plus 在mybatis与JPA之间,显得有点不伦不类,但这也阻止不了它现在的火热,中国人用得比较多

自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之间,显得有点不伦不类,但这也阻止不了它现在的火热,中国人用得比较多。


mybatis-plus测试代码下载


上一篇: bootstrap与metisMenu菜单不折叠的处理办法
下一篇: mybatis-plus代码生成器
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号