2 Star 5 Fork 0

Dreamroute / mybatis-pro

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

MyBatis-Pro,持久化框架最终兵器

img

大道至简,优雅解决MyBatis单表的一切问题

源码地址

使用文档

开发此框架的初衷

  • 让单表查询更加优雅
  • 基本告别单表SQL语句
  • 媲美JPA的单表查询优势
  • 拒绝重复造轮子
  • 钢铁直男的终极选择

框架功能

  • 无需手动编写单表增删改查方法,框架自动生成

  • 与通用Mapper、MyBatis-Plus等三方框架兼容(三者选其一即可,功能类似)

  • 【可选】内置枚举类型处理器,优雅解决枚举类型问题,无需手动转换

  • 【可选】内置泛型Service,避免重复造轮子编写大量类似的Service方法代码

  • 【可选】内置两种方式逻辑删除,可放心大胆的在生产环境进行delete操作,不用担心误删数据

  • 【可选】分页插件支持单表、多表关联查询、支持复杂的多表分页查询

  • 【可选】sql打印插件已经用实际参数替换了?占位符,可以从日志文件拷贝出来直接执行

  • 【可选】乐观锁插件透明解决乐观锁问题

设计原则

框架本身依赖mybatis-spring,仅在应用启动时织入框架逻辑,不破坏任何mybatis核心,原则上可以兼容任何mybatis版本

版本要求

  • JDK 1.8+
  • maven-compiler-plugin编译插件不要关闭<arg>-parameters</arg>,因为需要通过反射获取参数名称(这是jdk8的特性)

使用方式

  • SpringBoot
<dependency>
    <groupId>com.github.dreamroute</groupId>
    <artifactId>mybatis-pro-boot-starter</artifactId>
    <version>latest version</version>
</dependency>

最新版本:点击查看

功能展示

  • 单表条件查询
public interface UserMapper {

    // 这是一个根据用户名、密码查询单个用户的查询,方法名只需要以findBy打头,接着方法名为: NameAndPassword
    User findByNameAndPassword(String name, String password);

}

你无需在xml文件中编写sql,也无需使用注解@Select("xxx")的sql,框架自动根据方法名:

findByNameAndPassword切割成findBy,Name, And, Password,组成如下sql:

select * from user where name = #{name} and password = #{password}

对比(mybatis-plus、通用mapper)

需求:查询字段version字段大小在2~4之间,并且根据id反向排序

  • mybatis-pro:
@Test
void proTest() {
    List<User> users = findByVersionBetweenOrderByIdDesc(2L, 4L);
}
  • mybatis-plus:
@Test
void plusTest() {
    LambdaQueryWrapper<User> qw = new LambdaQueryWrapper<>();
    LambdaQueryWrapper<User> query = qw.between(User::getVersion, 2L, 4L);
    query.orderByDesc(User::getId);
    List<User> users = userMapper.selectList(query);
}
  • 通用mapper
@Test
void mapperTest() {
    Example e = new Example(User.class);
    e.orderBy("id").desc();
    Criteria criteria = e.createCriteria().andBetween("version", 2L, 4L);
    List<User> users = userMapper.selectByExample(e);
}

全部文档

作者信息

Email: 342252328@qq.com

空文件

简介

暂无描述 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/Dreamroute/mybatis-pro.git
git@gitee.com:Dreamroute/mybatis-pro.git
Dreamroute
mybatis-pro
mybatis-pro
master

搜索帮助