MyBatis反向生成Example类的使用方式

目录
  • MyBatis反向生成Example类使用
    • 一、逆向工程
    • 二、Example类的生成
    • 三、Example类的使用
    • 四、使用方法
  • MyBatis逆向工程生成Example类的方法总结
    • 一、mapper接口中的方法解析
    • 二、Example类解析
    • 三、小结一下

MyBatis反向生成Example类使用

一、逆向工程

MyBatis的逆向工程不仅仅可以生成和表相对应的实体类还可以根据数据库种的表自动生成Example类,我们可以用Example类

实现条件增删改查而不用自己再去写sql语句。

二、Example类的生成

只要在generatorConfig.xml 文件中用表名生成对应的实体类时将生成Example的信息都变为true即可。

        <table tableName="user"
            enableCountByExample="true"
           enableUpdateByExample="true"
           enableDeleteByExample="true"
           enableSelectByExample="true"
            selectByExampleQueryId="false"
        </table>

三、Example类的使用

打开一个Exapmle类我们会看到以下几个成员

protected String orderByClause;
protected Integer start;
protected Integer length;
protected boolean distinct;
protected List<Criteria> oredCriteria; 
  • orderByClause:用于指定ORDER BY条件,这个条件没有构造方法,直接通过传递字符串值指定。
  • startlength:是分页时用来指定查询第几条数据到第几条数据的。
  • distinct:是用来指定是否要去重查询的,true为去重,false不去重。
  • oredCriteriia:是用来指定查询条件的。

逆向工程生成的文件XxxExample.java中包含一个static 的内部类 Criteria ,在Criteria中有很多方法,主要是定义SQL 语 句where后的查询条件。

四、使用方法

在service种可以这么写

//指定要进行去重查询
  userBankCardExample.setDistinct(true);
  //指定查询条件
  userBankCardExample.createCriteria().andUserIdEqualTo(iptUserBankCard.getUserId());
  //调用查询方法
  List<UserBankCard> userBankCadList = userBankCardDao.selectByExample(userBankCardExample);

注意:在调用upateExample()是更新所有字段,包括字段为null的也更新,建议使用 updateByExampleSelective()更新想更新的字段

MyBatis逆向工程生成Example类的方法总结

很早之前就在项目开发中多次使用MyBatis逆向工程生成的Example类,但一直没有对其下的方法做一个简单的总结,现总结如下:

一、mapper接口中的方法解析

mapper接口中的部分常用方法及功能如下:

方法 功能说明
int countByExample(UserExample example) thorws SQLException 按条件计数
int deleteByPrimaryKey(Integer id) thorws SQLException 按主键删除
int deleteByExample(UserExample example) thorws SQLException 按条件删除
String/Integer insert(User record) thorws SQLException 插入数据(返回值为ID)
User selectByPrimaryKey(Integer id) thorws SQLException 按主键查询
ListselectByExample(UserExample example) thorws SQLException 按条件查询
ListselectByExampleWithBLOGs(UserExample example) thorws SQLException 按条件查询(包括BLOB字段)。只有当数据表中的字段类型有为二进制的才会产生
int updateByPrimaryKey(User record) thorws SQLException 按主键更新
int updateByPrimaryKeySelective(User record) thorws SQLException 按主键更新值不为null的字段
int updateByExample(User record, UserExample example) thorws SQLException 按条件更新
int updateByExampleSelective(User record, UserExample example) thorws SQLException 按条件更新值不为null的字段

二、Example类解析

mybatis的逆向工程中会生成实体类及实体类对应的example类,example类用于添加条件,相当where后面的部分。

xxxExample example = new xxxExample();
Criteria criteria = new Example().createCriteria();

example类中的部分常用方法及功能如下:

方法 功能说明
example.setOrderByClause(“字段名 ASC”); 添加升序排列条件,DESC为降序
example.setDistinct(false) 去除重复,boolean型,true为选择不重复的记录
criteria.andXxxIsNull 添加字段xxx为null的条件
criteria.andXxxIsNotNull 添加字段xxx不为null的条件
criteria.andXxxEqualTo(value) 添加xxx字段等于value条件
criteria.andXxxNotEqualTo(value) 添加xxx字段不等于value条件
criteria.andXxxGreaterThan(value) 添加xxx字段大于value条件
criteria.andXxxGreaterThanOrEqualTo(value) 添加xxx字段大于等于value条件
criteria.andXxxLessThan(value) 添加xxx字段小于value条件
criteria.andXxxLessThanOrEqualTo(value) 添加xxx字段小于等于value条件
criteria.andXxxIn(List<?>) 添加xxx字段值在List<?>条件
criteria.andXxxNotIn(List<?>) 添加xxx字段值不在List<?>条件
criteria.andXxxLike(“%”+value+”%”) 添加xxx字段值为value的模糊查询条件
criteria.andXxxNotLike(“%”+value+”%”) 添加xxx字段值不为value的模糊查询条件
criteria.andXxxBetween(value1,value2) 添加xxx字段值在value1和value2之间条件
criteria.andXxxNotBetween(value1,value2) 添加xxx字段值不在value1和value2之间条件

注:在mybatis逆向工程生成的文件XxxExample.java中包含一个static的内部类Criteria,Criteria中的方法是定义SQL 语句where后的查询条件。

三、小结一下

XxxExample.java只能实现简单条件增删改查,复杂的功能还需要自己编写sql代码来实现。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Mybatis多线程下如何使用Example详解

    前言 服务器每收到一个请求,都会从线程池中调度一个空闲线程来处理,spring整合的web时,controller和service一般都是单例的,这样导致无论你的Example标注的是单例还是多例,同一个service下的Example也只有一个,多线程访问时产生的 问题如下 问题详情 工程目录结构如下 MyService 的service()方法接收两个参数并据此查询数据库 @Service public class MyService { @Autowired StudentMapper s

  • Java中mybatis关于example类的使用详解

    这几天刚接触example,很多内容都是破碎的,写一篇博文加深理解. 一.什么是example类 mybatis-generator会为每个字段产生如上的Criterion,如果表的字段比较多,产生的Example类会十分庞大.理论上通过example类可以构造你想到的任何筛选条件.在mybatis-generator中加以配置,配置数据表的生成操作就可以自动生成example了.具体配置可以参考MBG有关配置.      下面是mybatis自动生成example的使用. 二.了解exampl

  • Mybatis Example的高级用法详解

    目录 Mybatis Example的高级用法 一. mapper接口中的函数及方法 二. example实例方法 三. 使用案例 说说Mybatis Example常见用法 一. 说明 二. 排序查询 三. 查询limit, 只返回前50条数据 Mybatis Example的高级用法 近几个项目一直使用的mybatis来对数据库做查询,期间用到了很多高效简洁的查询方法,特此记录和分享. 一. mapper接口中的函数及方法 方法名 功能 int countByExample(UserExam

  • mybatis自动生成时如何设置不生成Example类详解

    本文主要给大家介绍了关于mybatis自动生成时不生成Example类的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 只需要在配置要生成的table表中添加几个配置属性就行了. 在generatorConfig.xml文件中修改 <!--指定数据库表--> <table tableName="t_user" schema="" > <generatedKey column="userId" sqlStat

  • mybatis example如何自动生成代码 排序语句

    目录 mybatis example自动生成代码 排序语句 mybatis自动生成的example用法 举个使用例子 查询表全部数据 方法说明 mybatis example自动生成代码 排序语句 UserExample ue= new UserExample(); String classLevel = "1"; ue.createCriteria().andUserIdEqualTo(classLevel); //ts为时间戳 ue.setOrderByClause("t

  • MyBatis通用Mapper中的通用example(排序)详解

    目录 MyBatis通用Mapper的通用example(排序) 接口 实现类 MyBatis通用Mapper技巧 一.排序 二.处理oracle的null异常 三.mapper的selectOne返回值可能是null 四.看代码 MyBatis通用Mapper的通用example(排序) Example example = new Example(TerminalType.class); //注意:排序使用的是列名 example.setOrderByClause("TT_PROVIDERID

  • MyBatis反向生成Example类的使用方式

    目录 MyBatis反向生成Example类使用 一.逆向工程 二.Example类的生成 三.Example类的使用 四.使用方法 MyBatis逆向工程生成Example类的方法总结 一.mapper接口中的方法解析 二.Example类解析 三.小结一下 MyBatis反向生成Example类使用 一.逆向工程 MyBatis的逆向工程不仅仅可以生成和表相对应的实体类还可以根据数据库种的表自动生成Example类,我们可以用Example类 实现条件增删改查而不用自己再去写sql语句. 二

  • Django用数据库表反向生成models类知识点详解

    Django根据已有数据库表反向生成models类 一. 创建一个Django项目 django-admin startproject 'xxxx' 二.修改settings文件 在setting里面设置你要连接的数据库名称,地址,账号密码之类的信息,和创建新项目的时候一致 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'djangodemo', # 数据库名称 'USER': 'root', '

  • IntelliJ IDEA(2019)之mybatis反向生成的实现

    mybatis的逆向工程是非常便捷的操作,能够显著的提高我们的开发效率,之前介绍过Eclipse的操作,本文来介绍下在idea中怎么处理. mybatis逆向工程 1.配置文件 在resources目录下创建配置文件,具体如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBati

  • Springboot Mybatis Plus自动生成工具类详解代码

    前言 代码生成器,也叫逆向工程,是根据数据库里的表结构,自动生成对应的实体类.映射文件和接口. 看到很多小伙伴在为数据库生成实体类发愁,现分享给大家,提高开发效率. 一.pom依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version> &

  • mybatis generator 配置 反向生成Entity简单增删改查(推荐)

    mybatis generator 配置 反向生成Entity简单增删改查实例代码如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd

  • Mysql数据库反向生成Django里面的models指令方式

    python manage.py inspectdb 或 python manage.py inspect > app/models.py 补充知识:Django框架MySQL数据库到models模型的映射关系 一.前言 我的数据库已经用MySQL Workbench设计好了,也插入了一些测试数据,现在开始在Django中设计models模型.本以为顺风顺水,没想到也遇到一些bug,现在记录一下踩坑填坑过程. 二.设计models模型 1. 如果数据库中表的数量比较多,可以先导出,然后查看对应表

  • IDEA MyBatis Plugins自动生成实体类和mapper.xml

    前言 如何下载和使用MyBatis Generator 插件,只说代码,不讲感情.如果有问题还请多多指点. 开发环境 开发工具:IntelliJ IDEA 2018.1.1 x64 dk版本:1.8.0_171 工程构建工具:maven 版本3.2.5 数据库 mysql IDEA 下载MyBatis Generator 插件 1.首先在File--Settings--点击Plugins,搜索框中搜索mybatis,选择mybatis-plugins,点击安装(由于我的已经安装过,所以没有绿色的

  • Mybatis通过数据库表自动生成实体类和xml映射文件

    环境:maven+idea. 1. 需要的jar包 基本的spring和mybatis依赖包就不说了,在pom文件的build->plugins节点下需要添加(两个依赖包也可以直接添加到pom的依赖里面去,这里是为了直接通过maven的插件来生成.如果不是使用maven,自行百度下): <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-mave

  • MyBatis Generator生成代码及使用方式详解

    为什么要有mybatis mybatis 是一个 Java 的 ORM 框架,ORM 的出现就是为了简化开发.最初的开发方式是业务逻辑和数据库查询逻辑是分开的,或者在程序中编写 sql 语句,或者调用 sql 存储过程.这样导致思维需要在语言逻辑和 sql 逻辑之间切换,导致开发效率低下.所以出现了一系列的 ORM 框架,ORM 框架将数据库表和 Java 对象对应起来,当操作数据库时,只需要操作对象的 Java 对象即可,例如设置几个 and 条件,只需要设置几个属性即可. 为什么要有myba

随机推荐