mybatis-crud-pagemybatis 实现jpa的crud-page和service方法

联合创作 · 2023-09-30 20:52

mybatis 的crud,快速的增删查改

spring或者springboot中使用mybtais,像jpa一样可以使用注解进行实体和数据库表的映射,

目前只实现了单表,主键使用UUID生成

使用简单,可以减少大量的 mapper的dao层和service层的代码,使用基类统一的代码

已经在本人的不少工程验证过,快速实现crud

一:组件jar包说明:

1.封装了数据实体对应的数据库列的一一映射关系
2.提供了基本的增删改的sql生成
3.提供了模糊匹配查询的sql生成
4.提供了精确匹配查询的sql生成
5.提供了基本的Mapper接口,里面有增删查改的基本方法
6.提供了基本的抽象service,里面有增删查改的基本方法
7:提供了分页的基本方法,使用com.github.pagehelper的pagehelper的 5.0.0的版本

二:组件jar包的的导入

1.gradle 添加依赖 
      classpath "com.wolfking:mybatis-crud:1.0.0-SNAPSHOT"
2.maven添加依赖
        com.wolfking
        mybatis-crud
       1.0.0-SNAPSHOT

三:jar包类的说明

1.MyTable
    写在实体类上面,如下
    @MyTable("sys_dict")
    public class Dict extends DataEntity {}
    sys_dict 是数据库对应的表名
2.MyId
    写在主键属性上,如下,如果属性名和数据库的列名相同(严格区分大小写),则不需要写括号里面的内容,
    主键的生成,第一版全部使用 UUID
    @MyId("id")
    protected String id;
3.MyColumn
    写在主键属性上,如下,如果属性名和数据库的列名相同(严格区分大小写),则不需要写括号里面的内容
    @MyColumn("remarks")
    protected String remarks; // 备注
4.BaseMapper  基本的mapper接口
5.BaseSqlProvider  基本的sql 提供者
6.BaseService, T> 提供了基本的service,实体操作的service可以基于这个来写

四:mybatis的分页插件


五:jar包的使用方法

1.pom.xml 和 build.gradle 添加依赖
2.实体类的编写
    @MyTable("sys_dict")
    public class Dict{
           @MyId("id")
           private String id;
           @MyColumn
           private String description; // 描述
           @MyColumn("parent_id")
           private String parentId; // 父Id
    }

2.mybatis的mapper的编写,继承BaseMapper,T是实体类

    import  com.wolfking.mybatis.mapper.*;
    @Mapper   //这个是mybatis扫描的注解,根据mybatis-spring-boot-starter 版本来确定是否需要添加
    public interface DictMapper extends BaseMapper {
    }

3.在service层mybatis接口的使用,继承了抽象类的所有方法
    @Service
    public class DictService extends BaseService {
        //其他业务代码
    }

六:根据ID查询,根据ID删除需要注意

参数直接输入ID,不需要创建实体类
service.getById("123");
service.deleteById("123");

七:service方法讲解

add:  添加实体
update:更新实体
deleteById:根据ID删除
deleteEntity:根据ID删除
getById: 根据ID查询
getEntity:根据ID查询
findAll:查询所有
seleteVague:模糊匹配查询
seleteAccuracy:精确匹配查询
countAll:统计总数
countVague:模糊匹配,查询总数
countAccuracy:精确匹配,查询总数
pageVague:模糊匹配分页查询
pageAccuracy:精确匹配分页查询
deleteAll: 删除所有实体
deleteVague: 模糊匹配删除实体
deleteAccuracy: 精确匹配删除实体
浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报