原文链接:ibit-mybatis介绍

概述

   ibit-mybatis是一个Mybatis的增强工具,在Mybatis的基础上增加了新的特性与功能,志在简化开发流程、提高开发效率。

特性

  • 无侵入,引入”ibit-mybatis”对现有工程不会产生影响。
  • 灵活的CRUD(增、删、改、查)操作,内置Dao,Mapper,支持常用的单表CRUD操作,更有强大的SQL构造器(sql-builder),满足更为复杂的操作(如聚合函数、分组、连表)。
  • 内置代码生成器(ibit-mybatis-generator),指定数据库表,自动生成Dao、Mapper、Entity、Properties等基础类,减少重复或者相似代码编写。
  • 扩展支持,分页、数据脱敏
  • 主流微服务框架springboot(ibit-mybatis-springboot-starter)的支持

整体框架图

sql-builder描述

sql-builder定义动态SQL的生成规则,用来实现单表的CRUD操作。

模块图

动态SQL构造规则

序号 方法 描述
1 select
selectPo(对象)
selectDistinct
selectDistinctPo(对象)
select [distinct]语句
2 count
countDistinct
select count [distinct]语句
3 deleteFrom
deleteTableFrom(别名)
delete from语句
4 update update语句
5 insertInto
batchInsertInto(批量)
insert into语句
6 set
increaseSet(列自增)
decreaseSet(列自减)
set语句
7 values values语句
8 from from语句
9 joinOn
leftJoinOn
rightJoinOn
fullJoinOn
innerJoinOn
complexLeftJoinOn
complexRightJoinOn
complexFullJoinOn
complexInnerJoinOn
[left|right|full|inner] join on语句
10 where
andWhere
orWhere
where语句
11 groupBy group by语句
12 having
andHaving
orHaving
having语句
13 orderBy order by语句
14 limit limit语句

更加详细用法参考sql-builder

核心代码说明

ibit-mybatis重新定义了业务分层模型,将原有的Dao层下放到Mapper(数据访问层),增加新的Dao层(构造层)。

分层模型

定义Mapper

Mapper为数据访问层,默认基于注解实现了insert(增加),update(更新/删除),select(查询),count(计数)和实体映射到xml的ResultMap。接收参数为sql-builder生成的SqlParams参数。Mapper对于原生的基于xml、注解的数据访问方式是兼容的。

定义Dao

Dao为构造层,可以通过sql-builder构造sql,调用Mapper获取结果。定义通用的Dao模板,默认支持跟主键相关的CRUD操作。


Dao模板设计,按照主键个数分类,分成3类,无主键、单个主键、多个主键。

  • NoIdDao:无主键Dao,只支持插入操作。
  • SingleIdDao:单个主键Dao,支持插入,通过主键查询、更新删除操作。
  • MultipleIdDao:多个主键Dao,支持插入,通过主键查询、更新删除操作。

用法

相关引用

Gradle

compile 'tech.ibit:ibit-mybatis:${lastest}'

Maven

<dependency>
<groupId>tech.ibit</groupId>
<artifactId>ibit-mybatis</artifactId>
<version>${latest}</version>
</dependency>

说明: 将 "${latest}" 替换成对应的版本

其他说明

如果需要需要在Mapper中动态指定"resultMap",则需要增加拦截器tech.ibit.mybatis.plugin.ResultMapInterceptor

@Bean
public ResultMapInterceptor getResultMapInterceptor() {
return new ResultMapInterceptor();
}

【转载】ibit-mybatis介绍的更多相关文章

  1. MyBatis - 介绍、简单入门程序

    JDBC编程中的问题     1. 将SQL语句硬编码到Java代码,不利于系统维护.         设想如何解决:将SQL单独抽取出来,在配置文件(xml方式.properties文件)进行配置. ...

  2. Mybatis学习笔记(一) —— mybatis介绍

    一.Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...

  3. (转)MyBatis框架的学习(一)——MyBatis介绍

    http://blog.csdn.net/yerenyuan_pku/article/details/71699343 MyBatis介绍 MyBatis本是apache的一个开源项目iBatis,2 ...

  4. MyBatis 介绍

    MyBatis 介绍 MyBatis 是一款优秀的 ORM(Object Relational Mapping,对象关系映射)框架,它可以通过对象和数据库之间的映射,将程序中的对象自动存储到数据库中. ...

  5. mybatis介绍--基于个人学习JavaWeb的使用

    mybatis介绍 该博文放在javaWeb系列下,目的是记录我们javaWeb阶段所学的知识 @time=2022/3/11/11:52(最近休息玩了两天,今天重新启动生活) 一.mybatis发展 ...

  6. 转载:mybatis自动生成

    MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://generator.sturgeon.mopaas.com/ 该中文文档由于尽可能和原文内容 ...

  7. 【转载】Mybatis多参数查询映射

    转载地址:http://www.07net01.com/zhishi/402787.html 最近在做一个Mybatis的项目,由于是接触不久,虽然看了一下资料,但在实际开发中还是暴 露了很多问题,其 ...

  8. mybatis介绍与环境搭建

    一.不用纯jdbc的原因,即缺点. 1.数据库理解,使用时创建,不用时释放,会对数据库进行频繁的链接开启和关闭,造成数据库的资源浪费,影响数据库的性能.设想:使用数据库的连接池.2.将sql语句硬编码 ...

  9. [转载] Redis系统性介绍

    转载自http://blog.nosqlfan.com/html/3139.html?ref=rediszt 虽然Redis已经很火了,相信还是有很多同学对Redis只是有所听闻或者了解并不全面,下面 ...

随机推荐

  1. axios请求方法封装.

    axios的使用上一般封装好对应的方法,ES6导出,直接调用,消息通知使用了ElementUI的Message组件. 这是一个封装了axios的Rest风格的工具类,包扩常用的POST,GET,PUT ...

  2. 团队第一次作业(软工C#造梦厂)

    一.团队简介 a.团队名称:软工C#造梦厂 b.队员列表 姓名 学号 张旭(组长) 201731024123 周成杰 201731024136 邹扬锋 201731024134 赵俊安 2017310 ...

  3. C# winform 弹框提示内存不足

    看了下面一片博文解决的 Winform 内存不足Winform,我给PictureBox 赋值 picBox_One.BackgroundImage = Image.FromFile("图片 ...

  4. 使用Python写的WingPro7 Pyside2 和 PyQt5插件

    pyside2的 import wingapi import subprocess pyside2_uic = "pyside2-uic" pyside2_qrc = " ...

  5. Idea-LifecycleException when deploying

    案例 今天第一次用idea构建项目,出现了如下问题: FAIL - Application at context path /myWebApp could not be started FAIL - ...

  6. Docker(一):理解Docker镜像与容器

    一.镜像的概念 1.广泛镜像概念: 镜像是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在完全相同的副本即为镜像. 2.Docker镜像概念: 在Docker中镜像同样是一种完全 ...

  7. gentoo在KVM+QEMU中安装笔记

    gentoo是比较难安装的,本笔记主要是记录本次安装过程,以备参考. 1.首先,下载镜像,可以去国内各大镜像网站下载,我选择的是清华的镜像源:https://mirrors.tuna.tsinghua ...

  8. Go语言实现:【剑指offer】字符流中第一个不重复的字符

    该题目来源于牛客网<剑指offer>专题. 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是 ...

  9. AD域SSP安全防护

    一.简介 SSP(Security Support Provider)是windows操作系统安全机制的提供者.简单的说,SSP就是DLL文件,主要用于windows操作系统的身份认证功能,例如NTL ...

  10. 面试官:“看你简历上写熟悉 Handler 机制,那聊聊 IdleHandler 吧?”

    一. 序 Handler 机制算是 Android 基本功,面试常客.但现在面试,多数已经不会直接让你讲讲 Handler 的机制,Looper 是如何循环的,MessageQueue 是如何管理 M ...