java中的example_Java中mybatis关于example类的使用详解

2023-11-07

21b50ae70e18503be9689347a7d4412f.png

这几天刚接触example,很多内容都是破碎的,写一篇博文加深理解。

一、什么是example类

mybatis-generator会为每个字段产生如上的Criterion,如果表的字段比较多,产生的Example类会十分庞大。理论上通过example类可以构造你想到的任何筛选条件。在mybatis-generator中加以配置,配置数据表的生成操作就可以自动生成example了。具体配置可以参考MBG有关配置。

下面是mybatis自动生成example的使用。

二、了解example成员变量

//升序还是降序

//参数格式:字段+空格+asc(desc)

protected String orderByClause;

//去除重复

//true是选择不重复记录

protected boolean distinct;

//自定义查询条件

//Criteria的集合,集合中对象是由or连接

protected List oredCriteria;

//内部类Criteria包含一个Cretiron的集合,

//每一个Criteria对象内包含的Cretiron之间

//是由AND连接的

public static class Criteria extends GeneratedCriteria {

protected Criteria() {

super();

}

}

//是mybatis中逆向工程中的代码模型

protected abstract static class GeneratedCriteria

{…..}

//是最基本,最底层的Where条件,用于字段级的筛选

public static class Criterion {……}

三、example使用前的准备

比如我的example是根据user表生成的,UserMapper属于dao层,UserMapper.xml是对应的映射文件

UserMapper接口:

long countByExample(CompetingStoreExample example);

List selectByExample(CompetingStoreExample example);

在我们的测试类里:

UserExample example = new UserExample();

UserExample.Criteria criteria = example.createCriteria();

四、查询用户数量

long count = UserMapper.countByExample(example);

类似于:select count(*) from user

五、where条件查询或多条件查询

example.setOrderByClause("age asc");//升序

example.setDistinct(false);//不去重

if(!StringUtils.isNotBlank(user.getName())){

Criteria.andNameEqualTo(user.getName());

}

if(!StringUtils.isNotBlank(user.getSex())){

Criteria.andSexEqualTo(user.getSex());

}

List userList=userMapper.selectByExample(example);

类似于:select * from user where name={#user.name} and sex={#user.sex} order by age asc;

UserExample.Criteria criteria1 = example.createCriteria();

UserExample.Criteria criteria2 = example.createCriteria();

if(!StringUtils.isNotBlank(user.getName())){

Criteria1.andNameEqualTo(user.getName());

}

if(!StringUtils.isNotBlank(user.getSex())){

Criteria2.andSexEqualTo(user.getSex());

}

Example.or(criteria2);

List userList=userMapper.selectByExample(example);

类似于:select * from user where name={#user.name} or sex={#user.sex} ;

六、模糊查询

if(!StringUtils.isNotBlank(user.getName())){

criteria.andNameLIke(‘%"+name+"%");

}

List  userList=userMapper.selectByExample(example);

类似于:

select * from user where name like %{#user.name}%

七、分页查询

int start = (currentPage - 1) * rows;

//分页查询中的一页数量

example.setPageSize(rows);

//开始查询的位置

example.setStartRow(start);

List userList=userMapper.selectByExample(example);

类似于:

select * from user limit start to rows

到此这篇关于Java中mybatis中关于example类的使用详解的文章就介绍到这了,更多相关Java mybatis中example类内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

原文链接:https://blog.csdn.net/luluyo/article/details/81708833

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中的example_Java中mybatis关于example类的使用详解 的相关文章

  • STM32 HAL库:FreeRTOS系统 (带推荐使用除了Systick以外的时钟源问题及解决)

    1 简介 FreeRTOS是一个实时操作系统内核 作为一个轻量级的操作系统 功能包括 任务管理 时间管理 信号量 消息队列 内存管理 记录功能 软件定时器 协程等 可基本满足较小系统的需要 任务调度机制 优先级高的任务一旦就绪就能剥夺优先级
  • 在Android中使用Qt作为共享系统库

    Using Qt as shared system libraries in Android 在Android中使用Qt作为共享系统库 October 21 2022 by Tinja Paavosepp Comments 2022年10月
  • 如何在本地部署运行ChatGLM-6B

    在本篇技术博客中 将展示如何在本地获取运行代码和模型 并配置环境以及 Web GUI 最后通过 Gradio 的网页版 Demo 进行聊天 官方介绍 ChatGLM 6B 是一个开源的 支持中英双语的对话语言模型 基于 General La
  • selenium(练习)提取dou yu网站上的数据

    运行代码时 它会打开斗鱼网站并逐个打印每个房间的相关信息 打印出每个房间的标题 类型 所有者 观看人数和封面图片 import time from selenium import webdriver class Douyu object d
  • 基于HTTP协议的API接口测试

    一 接口组成 请求 返回 接口请求 请求的URL 请求头 User Agent Content Type 请求方法 GET POST PUT DELEte 请求参数 拼接在URL 后面 请求的body中 二 接口测试关注点 三 postma
  • 2006年100首好歌

    快三秒音乐网收集的2006年网络点击最TOP100首流行歌曲 地址 http www k111 com musiclist k111 13703 htm1 千里之外 周杰伦 http www k111 com musiclist 10 72
  • 手刃一个小爬虫

    from urllib request import urlopen url https www baidu com resp urlopen url with open mybaidu html mode w as f f write r
  • ***.forEach is not a function

    forEach is not a function 缘起 在这里插入图片描述 原生js获取的DOM集合是一个类数组对象 不能直接利用数组的方法 例如 forEach map等 需要进行转换为数组后 才能用数组的方法 1 推荐几种转换成数组的
  • leetcode刷题笔记:两数之和

    题目链接 牺牲空间换时间 使用一个数组记录下遍历的数和target之间的差值 每遍历一个数查找差值列表是否存在该数 class Solution public int twoSum int nums int target int i int
  • Arduino数字滤波设计方法(Python测试滤波示例)和异常值过滤算法

    数字滤波设计 数字信号处理的目的是在数字系统上执行 而不是在模拟电路上进行操作 通过这种方式 它基于软件执行相同的任务 而不需要电子材料或更换 这种方法确保设计简单且可升级 比如用RC元件制作的模拟滤波器 就需要改变材料来改变滤波器的截止频
  • Docker使用阿里云镜像加速器

    登录阿里云控制台 搜索容器镜像服务 界面上没有可以在搜索框中搜索 进入容器镜像服务管理控制台 如果需要开通就按照提示开通一下 如下图所示 在容器镜像服务控制台最底下有个镜像加速器 点进去之后有一个加速器地址 使用这个地址作为docker镜像
  • FreeRTOS ------- 任务(task)

    在学习RTOS的时候 个人觉得带着问题去学习 会了解到更多 1 什么是任务 在FreeRTOS中 每个执行线程都被称为 任务 每个任务都是在自己权限范围内的一个小程序 其具有程序入口每个任务都是在自己权限范围内的一个小程序 其具有程序入口通
  • 中断模式中中断和事件的区别_C中中断和继续之间的区别

    中断模式中中断和事件的区别 In this tutorial you will learn about difference between break and continue in C 在本教程中 您将了解C语言中break和conti
  • 前端websocket连接开发时devserver代理配置及nginx代理配置

    页面代码 socketUrl ws location host websocket ws uid 1 location host即前端服务部署地址 var socket new WebSocket socketUrl 打开事件 socket
  • HTML5+CSS3定位+导航二维码显示隐藏切换案例

  • Qt 样式表介绍

    概述 Qt Widget界面美化除了自己绘制外 有一个更简单高效的方式 就是Qt样式表 Qt样式表是一种强大的机制 通过QApplication setStyleSheet 设置整个应用程序的样式 通过QWidget setStyleShe
  • 分享几个图床网址,便于大家分享图片

    1 ImgURL 图床ImgURL ImgURL免费图床https https www imgurl org 又是一个比较老牌的免费图床服务 稳定性不错 无需注册 游客限制每日上传10张 单张图片不能超过 5M 支持 HTTPS 诞生于20
  • 数组的方法-sort()

    数组的sort 方法主要用于对数组的元素进行排序 其中 sort 方法有一个可选参数 但是 此参数必须是函数 数组在调用sort 方法时 如果没有传参将按字母顺序 字符编码顺序 对数组中的元素进行排序 如果想按照其他标准进行排序 就需要进行
  • Vue路由+NodeJs环境搭建

    Vue路由 NodeJs环境搭建 一 Vue路由 第一步 引入js文件 第二步 创建两个组件展示相关的功能 第三步 形成组件与请求路径的对应关系 第四步 将路由关系和路由对象绑定 第五步 将路由关系和vue实例绑定 第六步 发起请求 第七步

随机推荐

  • 1、docker 镜像操作

    1 创建 拉取镜像 docker hub https hub docker com 搜索对应的镜像 搜索 nvidia cuda 在tags里最终选择 10 2 cudnn7 devel ubuntu18 04版本 最终完整的镜像名 nvi
  • 域名,端口,IP总结

    前言 真正的房子只有几个门 但是一个IP地址的端口可以有65536 即 2 16 个之多 端口是通过端口号来标记的 端口号只有整数 范围是从0 到65535 2 16 1 我们知道 一台拥有IP地址的主机可以提供许多服务 比如Web服务 F
  • 智能交通技术(ITSTech)公号推广简介

    2023年9月14日更新 一 智能交通技术 微信公众号 简介 关注智能交通 车路协同 交通规划 交通改善 智慧城市等领域新理论和技术发展 交流大数据 云边端计算 人工智能 区块链等技术的应用经验 推广智能交通技术在交通规划 交通运输监管 交
  • hj212协议如何和php通讯,HJ212数据传输标准报文解析

    HJ212分为2005年 HJ T212 2005 和2017年 HJ212 2017 的版本 略有不同 网上没找到非常官方的渠道下载 在这贴一份2017年版本的下载地址 TCP IP通讯包组成 名称 类型 长度 描述 包头 字符 2 固定
  • 有符号数和无符号数

    1 数值 针对二进制来讲 有 有符号数 signed 和无符号数 unsigned 因为计算机无法区分一个二进制数是有符号数还是无符号数 因此我们在定义时要明确该数值是有符号数还是无符号数 无符号类型需要通过unsigned关键字指定 否则
  • 下载bison和flex的好地方

    http sourceforge net projects gnuwin32 这里的bison和flex我觉得是最好用的 捣乱的
  • vue el-form-item给多个表单项绑定rules校验规则

    vue el form item给多个表单项绑定rules规则 如图所示 我们想要在element的表单里 给多个input添加校验规则 只需要在内部添加el form item项 并在el form item项里绑定prop和rules规
  • 基于Prompt的MLM文本分类

    简介 常规NLP做文本分类时常用Transfer Learning的方式 在预训练bert上加一个分类层 哪个输出节点概率最大则划分到哪一类别 而基于Prompt的MLM文本分类是将文本分类任务转化为MLM Masked Language
  • 自动驾驶前沿综述:基于深度强化学习的自动驾驶算法

    作者 TIM 编辑 汽车人 原文链接 https zhuanlan zhihu com p 477372894 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心技术交流群 后台回复 数据集下载 获
  • python弹窗程序教程(附源码解析)

    python弹窗程序教程 附源码解析 声明 此程序仅供娱乐整蛊 使用者后果自负 本人概不负责 代码可能有雷同 如有侵权 请联系小编 引言 弹窗是程序的一种显示内容的形式 例如警告 提示等 而弹窗还有一种特殊的呈现形式 恶意程序 有人说不就是
  • VUE3写后台管理(3)

    VUE3写后台管理 3 1 环境 1 node 2 vite 3 Element plus 4 vue router 5 element icon 6 less 7 vuex 8 vue demi 9 mockjs 10 axios 11
  • Top 5 Best Open Source Projects on GitHub 2023

    这里介绍Github上 5 个增长最快的开源项目 它们为原有的解决方案提供了更加具有成本效益的替代方案 并为开发者 数据分析师和企业提供了高可用的工具产品 利用开源的优势 这5个项目拓展了强大而有效的解决方案 是值得收藏 分享以及探索尝试的
  • wayland 概述

    wayland 背景 强烈推荐在阅读本文前先浏览以下文档 Wayland Architecture 概述 wayland 是一种用于用于显示服务器的协议 它规定了客户端如何与服务器进行通信 也就是说 wayland 仅仅只是标准化 了客户端
  • 数据太大,long放不下的问题。numberOutOf Range

    数据库返回的数据 long存不下 改为用String类型
  • 缺失值填充5——AutoEncoder填充序列缺失值

    AutoEncoder可以参考 pytorch实现基本AutoEncoder与案例 AutoEncoder填充缺失值的思路是 在完整的数据集上训练一个AutoEncoder 把有缺失的数据拿过来 先全零填充原有的值 再通过AutoEncod
  • Eigen库 矩阵基本操作:转置矩阵,逆矩阵,伴随矩阵,特征值

    include
  • WebLogic 之安全配置

    WebLogic 之安全配置 前段时间Java的反序列化漏洞吵得沸沸扬扬 因工作原因需要对weblogic进行安全配置 网上关于weblogic的安全配置的内容都不是很全面 可能是因为weblogic已经比较成熟了吧 本文就总结一下在整个过
  • 仿射变换原理和其OpenCV-Python实现知识汇总

    老猿Python博文目录 https blog csdn net LaoYuanPython 一 仿射变换概念和类型 图像几何变换又称为图像空间变换 是各种图像处理算法的基础 它是在不改变图像内容的情况下 对图像像素进行空间几何变换的处理方
  • UAV无人机(三):飞控系统

    无人机的飞控系统是指控制和管理无人机飞行的核心组件 它主要负责飞行姿态控制 导航 稳定性控制 传感器数据处理和通信等功能 以下是无人机飞控系统的一般组成部分 主控制器 Flight Controller 主控制器是飞控系统的核心 通常是一个
  • java中的example_Java中mybatis关于example类的使用详解

    这几天刚接触example 很多内容都是破碎的 写一篇博文加深理解 一 什么是example类 mybatis generator会为每个字段产生如上的Criterion 如果表的字段比较多 产生的Example类会十分庞大 理论上通过ex