MyBatis - MyBatis Generator 生成的example 如何使用 and or 简单混合查询
简单介绍:
查询条件1:a=? and (b=? or c=?) 不支持
查询条件2:(a=? And b=?) or (a=? And c=?) 支持
写法1:
1 DemoExample example=new DemoExample(); 2 3 DemoExample.Criteria criteria1=example.createCriteria(); 4 criteria1.andAEqualTo(?).andBEqualTo(?); 5 6 DemoExample.Criteria criteria2=example.createCriteria(); 7 criteria2.andAEqualTo(?).andCEqualTo(?); 8 9 example.or(criteria2); 10 11 SqlSession sqlSession = MyBatisUtil.openSession(); 12 DemoMapper m = sqlSession.getMapper(DemoMapper.class); 13 m.countByExample(example); 14 //生成的sql语句 15 select count(*) from demo WHERE ( a = ? and b = ? ) or ( a = ? and c = ? )
写法2:
1 DemoExample example=new DemoExample(); 2 3 example.or().andAEqualTo(?).andBEqualTo(?); 4 example.or().andAEqualTo(?).andCEqualTo(?); 5 6 SqlSession sqlSession = MyBatisUtil.openSession(); 7 DemoMapper m = sqlSession.getMapper(DemoMapper.class); 8 m.countByExample(example); 9 //生成的sql语句 10 select count(*) from demo WHERE ( a = ? and b = ? ) or ( a = ? and c = ? )
查询条件3:(a=? and (b=? or c=?)) 支持
假设两个搜索项,A项搜索,可搜索b,c(bc或关系),B项搜索可搜索a,B项搜索与A项搜索是与关系。
修改DemoExample.java文件,新增方法
1 public Criteria andOrDemo(String value){ 2 addCriterion("(b = \""+value+"\" or c = \""+value+"\")"); 3 return (Criteria) this; 4 }
DemoAction.java
1 DemoExample example=new DemoExample(); 2 Criteria criteria = example.createCriteria(); 3 criteria.andAEqualTo(?).andOrDemo(?); 4 5 SqlSession sqlSession = MyBatisUtil.openSession(); 6 DemoMapper m = sqlSession.getMapper(DemoMapper.class); 7 m.countByExample(example); 8 //生成的sql语句 9 select count(*) from demo WHERE ( a = ? and ( b = ? or c = ? ))
写法1:
转载于:https://www.cnblogs.com/kangping/p/6001519.html
MyBatis - MyBatis Generator 生成的example 如何使用 and or 简单混合查询相关推荐
- 解决表字段使用关键字导致Mybatis Generator生成代码异常的解决方案
From: http://blog.itfsw.com/2017/05/23/jiejue-biao-ziduan-shiyong-guanjianzi-daozhi-mybatis-generato ...
- mybatis generator使用_SpringBoot整合Mybatis实现自动生成代码 || 附阿里P8独家SpringBoot视频资料...
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. MyBatis 可以使用简单的 XM ...
- mybatis oracle生成注释,MyBatis Generator生成Oracle数据库对应实体类时无法获取注释问题...
最近在利用mybatis generator生成Oracle数据库对应的实体类时发现一个问题,特此记录下. 因为项目使用到了swagger2,所以想在生成实体类时通过表注释和字段注释生成对应的@Api ...
- 用mybatis的generator自动生成代码--坑我都走了一遍,后面的同学别踩了
先说什么是mybatis-generator? mybatis-geneator是一款mybatis自动代码生成工具,可以通过配置,快速生成mapper和xml文件. 步骤一:在pom文件中添加插件配 ...
- 如何用MyBatis-Generator自动创建代码(映射生成实体类、DAO接口和Mapping映射文件)
如何用MyBatis自动生成实体类.DAO接口和Mapping映射文件 引言: 什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBa ...
- IDEA使用mybatis实现generator自动生成MSSQLSERVER数据库表映射
IDEA使用mybatis实现generator自动生成MSSQLSERVER数据库表映射,generatorConfig.xml文件中配置如下内容: <?xml version="1 ...
- IDEA中实现mybatis generator生成
generatorConfig.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYP ...
- spring boot+mybatis+generator生成domain大小写问题
之前遇到一个问题,用generator生成数据库对应的domain,以前都是好好的,那天突然生成的domain都是小写的,因为我数据库里是大写的,后来找到解决办法, <table tableNa ...
- 实体类dao接口mysql_利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件...
解决问题: 可利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件. 测试环境准备: 新建一个mysql数据库,例如mungerzTest. 生成一张主键为自增ID的学生表: C ...
最新文章
- R语言绘图设备dev
- 虚拟人春节搞事情!先在央视《对话》,又跟李玉刚组团除夕出道
- DL之DNN:自定义MultiLayerNet【6*100+ReLU,SGD】对MNIST数据集训练进而比较【多个超参数组合最优化】性能
- mysql使用date_format格式化日期
- CSS 学习-文本 段落
- element table 表格设置max-height 没有出现滚动条,多渲染了一列。
- php配置支持mysql解决本地安装wordpress问题
- Trust is the most important thing to the team!
- 【BZOJ1911】【codevs1318】特别行动队,斜率优化DP
- fastdfs删除过期文件_Spring Boot 系列:使用 Spring Boot 集成 FastDFS
- 从char到QChar
- java中$和 的区别详解_MyBatis中#{}和${}的区别详解
- Hibernate配置文件与关联映射介绍
- 【转载】大学生必备软件免费自学视频教程,让那些培训班都见鬼去吧
- 二阶系统的时间响应及动态性能(时域分析)
- 利用模式进行构建第九讲——树形模式
- day 05 DQL数据查询语言---连接查询---登堂入室
- 数据错误循环冗余检查是什么意思_德尔西曼.交换机是一种什么设备?通过什么方式进行交换?...
- 图片加载失败,img触发错误显示默认图片
- JavaScript 学习笔记(第三天)
热门文章
- 2.Functions and Getting Help
- ubuntu服务器创建共享文件夹,Ubuntu samba安装创建共享目录及使用
- raft算法mysql主从复制_Etcd raft算法实现原理分析
- 计算机中丢失setupxml.dll,Win7电脑安装VideoStudio Pro X6显示丢失SetupXML.dll文件怎么解决...
- 威海二职工业机器人专业_工业机器人专业就业前景-山东省好的中专学校
- 多线程完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数
- Java线程面试题 Top 53
- leetcode9 回文数
- 关于valgrind的安装和内存泄露分析
- Python模块(8)-sklearn 简易使用教程