超好用的MyBatis 通用Mapper

项目简介

https://gitee.com/yangkeller/mapper

项目特点

  • 体积小,能量大
    • jar 包 58Kb
    • 引入后即可实现 增删改查操作,包含条件查询、分页查询、数据统计、添加、删除、修改等功能
  • 简单易用
    • 不需要书写Mapper代码
    • 不需要复杂配置
    • 引入 jar包,实体类添加注解,即可使用
  • 快速高效
    • 内部设置了缓存,同一张数据表只解析一次,代码执行效率高
    • 简化你的代码,让你的搬砖效率大幅提高
  • 开放源代码
    • 可以在此基础上自由发挥

目录结构

  • mybatis

    • annotation
      • FieldAttribute.java:数据库字段注解
      • TableAttribute.java:数据表注解
    • provider
      • BaseDeleteProvider.java:Delete语句生成器
      • BaseInsertProvider.java:Insert语句生成器
      • BaseSelectProvider.java:Select语句生成器
      • BaseUpdateProvider.java:Update语句生成器
    • BaseMapper.java:BaseMapper接口,所有Mapper 继承此接口即可拥有基础增删改查能力
    • BasePage.java:分页查询结果封装类,封装了页码、数据总数、页面总数、数据列表等
    • BaseQuery.java:基础查询类
    • SqlFieldReader.java:SQL 字段解析类
    • TypeCaster.java:类型转换器

功能展示

举例

user_info 表
		CREATE TABLE `user_info` (
  		`id` int(8) NOT NULL  COMMENT 'id',
  		`name` varchar(20)   NOT NULL COMMENT '昵称',
  		PRIMARY KEY (`id`)
		)
UserInfo 类
		private Integer id;
		private String name;

Entity 处理

@TableAttribute(name = "user_info")
public class UserInfo{
    /**
    * id
    */
    @FieldAttribute
    private Integer id;
    /**
    * 昵称
    */
    @FieldAttribute
    private String name;
  }

Mapper 处理

public interface UserInfoMapper extends BaseMapper<UserInfo>{
}

添加数据
		UserInfo user = new UserInfo();
        user.setId(1);
        user.setName("张三");

        Integer result = userInfoMapper.baseInsert(user);
批量添加
		List<UserInfo> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            UserInfo user = new UserInfo();
            user.setId(10 + i);
            user.setName("李四" + i);

            list.add(user);
        }
        Integer result = userInfoMapper.baseInsertList(list);
保存数据
		UserInfo user = new UserInfo();
        user.setId(1);
        user.setName("张三save");

        Integer result = userInfoMapper.baseSave(user);

删除数据
		UserInfo user = new UserInfo();
        user.setId(1);

        Integer result = userInfoMapper.baseDeleteById(user);

更新数据
		UserInfo user = new UserInfo();
        user.setId(1);
        user.setName("Name");
        Integer result = userInfoMapper.baseUpdateById(user);
部分更新
		UserInfo user = new UserInfo();
        user.setId(1);
        Integer result = userInfoMapper.baseUpdateById(user);

根据ID查询
		UserInfo user = new UserInfo();
        user.setId(1);

        UserInfo result = userInfoMapper.baseSelectById(user);
查询列表
		UserInfo user = new UserInfo();
        BaseQuery<UserInfo> query = new BaseQuery<>(user);
        List<UserInfo> result = userInfoMapper.baseSelectList(query);
分页查询列表
		UserInfo user = new UserInfo();
        user.setName("张三");
        BaseQuery<UserInfo> query = new BaseQuery<>(user);
        List<UserInfo> result = userInfoMapper.baseSelectPageList(query);
分页查询
 		UserInfo user = new UserInfo();
        user.setName("张三");
        BaseQuery<UserInfo> query = new BaseQuery<>(user);
        BasePage<UserInfo> result = userInfoMapper.baseSelectPage(query);
统计总数
 		UserInfo user = new UserInfo();
        user.setName("张三");
        BaseQuery<UserInfo> query = new BaseQuery<>(user);
        Integer result = userInfoMapper.baseSelectCount(query);

版权声明:本文为qq_41089021原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。