Ibatis动态(dynamic)查询
Ibatis的动态查询使得数据操作变得非常的灵活,下次举出了常用的动态查询的属性信息:
Ibatis配置信息
- <!-- Dynamic Sql -->
- <typeAlias alias="Student" type="com.ibatis.Student" />
- <typeAlias alias="StudentDTO" type="com.ibatis.StudentDTO" />
- <select id="dynamicGetStudent" parameterClass="StudentDTO"
- resultClass="Student">
- select *
- from student
- <dynamic prepend="WHERE">
- <isNotEqual prepend="AND" property="sid" compareValue="0">
- sid = #sid#
- </isNotEqual>
- <isNotNull prepend="AND" property="sname">
- sname = #sname#
- </isNotNull>
- </dynamic>
- <dynamic prepend="order by">
- <isParameterPresent>
- <isEqual prepend="order by" property="sort" compareValue="1">
- sname desc,socre
- </isEqual>
- <isEqual prepend="order by" property="sort" compareValue="2">
- sname asc,socre
- </isEqual>
- </isParameterPresent>
- </dynamic>
- </select>
<!-- Dynamic Sql --><typeAlias alias="Student" type="com.ibatis.Student" /><typeAlias alias="StudentDTO" type="com.ibatis.StudentDTO" /><select id="dynamicGetStudent" parameterClass="StudentDTO"resultClass="Student">select *from student<dynamic prepend="WHERE"><isNotEqual prepend="AND" property="sid" compareValue="0">sid = #sid#</isNotEqual><isNotNull prepend="AND" property="sname">sname = #sname#</isNotNull></dynamic><dynamic prepend="order by"><isParameterPresent><isEqual prepend="order by" property="sort" compareValue="1">sname desc,socre</isEqual><isEqual prepend="order by" property="sort" compareValue="2">sname asc,socre</isEqual></isParameterPresent></dynamic></select>
Student的信息
- package com.ibatis;
- import java.util.Date;
- public class Student {
- private int sid;
- private String sname;
- private String major;
- private Date birth;
- private int socre;
- public int getSid() {
- return sid;
- }
- public void setSid(int sid) {
- this.sid = sid;
- }
- public String getSname() {
- return sname;
- }
- public void setSname(String sname) {
- this.sname = sname;
- }
- public String getMajor() {
- return major;
- }
- public void setMajor(String major) {
- this.major = major;
- }
- public Date getBirth() {
- return birth;
- }
- public void setBirth(Date birth) {
- this.birth = birth;
- }
- public int getSocre() {
- return socre;
- }
- public void setSocre(int socre) {
- this.socre = socre;
- }
- @Override
- public String toString() {
- String content = "Sid="+this.sid+"\t"+"Sname="+this.sname+"\t"+this.birth.toLocaleString();
- return content;
- }
- }
package com.ibatis;import java.util.Date;public class Student {private int sid;private String sname;private String major;private Date birth;private int socre;public int getSid() {return sid;}public void setSid(int sid) {this.sid = sid;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getMajor() {return major;}public void setMajor(String major) {this.major = major;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}public int getSocre() {return socre;}public void setSocre(int socre) {this.socre = socre;}@Overridepublic String toString() {String content = "Sid="+this.sid+"\t"+"Sname="+this.sname+"\t"+this.birth.toLocaleString();return content;}}
StudentDTO的信息
- package com.ibatis;
- import java.util.Date;
- public class StudentDTO {
- private int sid;
- private String sname;
- private String major;
- private Date birth;
- private int socre;
- private int sort;
- public int getSort() {
- return sort;
- }
- public void setSort(int sort) {
- this.sort = sort;
- }
- public int getSid() {
- return sid;
- }
- public void setSid(int sid) {
- this.sid = sid;
- }
- public String getSname() {
- return sname;
- }
- public void setSname(String sname) {
- this.sname = sname;
- }
- public String getMajor() {
- return major;
- }
- public void setMajor(String major) {
- this.major = major;
- }
- public Date getBirth() {
- return birth;
- }
- public void setBirth(Date birth) {
- this.birth = birth;
- }
- public int getSocre() {
- return socre;
- }
- public void setSocre(int socre) {
- this.socre = socre;
- }
- @Override
- public String toString() {
- String content = "Sid="+this.sid+"\t"+"Sname="+this.sname+"\t"+this.birth.toLocaleString();
- return content;
- }
- }
package com.ibatis;import java.util.Date;public class StudentDTO {private int sid;private String sname;private String major;private Date birth;private int socre;private int sort;public int getSort() {return sort;}public void setSort(int sort) {this.sort = sort;}public int getSid() {return sid;}public void setSid(int sid) {this.sid = sid;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getMajor() {return major;}public void setMajor(String major) {this.major = major;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}public int getSocre() {return socre;}public void setSocre(int socre) {this.socre = socre;}@Overridepublic String toString() {String content = "Sid="+this.sid+"\t"+"Sname="+this.sname+"\t"+this.birth.toLocaleString();return content;}}
Java中的调用信息
- @SuppressWarnings("unchecked")
- public static void main(String[] args) {
- List<Student> list = dao.dynamicGetStudent(studentDTO);
- for(Student student : list){
- System.out.println("name:"+student.getSname());
- }
- System.out.println("size:"+list.size());
- }
- @Override
- public List dynamicGetStudent(StudentDTO studentDTO) {
- List result = null;
- try {
- result = sqlMapClient.queryForList("dynamicGetStudent",studentDTO);
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return result;
- }
@SuppressWarnings("unchecked")public static void main(String[] args) {List<Student> list = dao.dynamicGetStudent(studentDTO);for(Student student : list){System.out.println("name:"+student.getSname());}System.out.println("size:"+list.size());}
@Overridepublic List dynamicGetStudent(StudentDTO studentDTO) {List result = null;try {result = sqlMapClient.queryForList("dynamicGetStudent",studentDTO);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return result;}
动态查询中的常用属性:
属性关键字 | 含义 |
<isEqual> | 如果参数相等于值则查询条件有效 |
<isNotEqual> | 如果参数不等于值则查询条件有效 |
<isGreaterThan> | 如果参数大于值则查询条件有效 |
<isGreaterEqual> | 如果参数等于值则查询条件有效 |
<isLessEqual> | 如果参数小于值则查询条件有效。如下所示:<isLessEqual prepend = ”AND” property = ”age” compareValue = ”18” >ADOLESCENT = ‘TRUE’</isLessEqual> |
<isPropertyAvailable> | 如果参数有使用则查询条件有效。 |
<isNotPropertyAvailable> | 如果参数没有使用则查询条件有效 |
<isNull> | 如果参数为NULL则查询条件有效 |
<isNotNull> | 如果参数不为NULL则查询条件有效 |
<isEmpty> | 如果参数为空则查询条件有效 |
<isNotEmpty> | 如果参数不为空则查询条件有效 |
<isParameterPresent> | 如果参数类不为NULL则查询条件有效 |
<isNotParameterPresent> | Checks to see if the parameter object is not present (null). Example Usage |
Ibatis动态(dynamic)查询相关推荐
- ibatis动态查询条件(转载待完善)
ibatis动态查询条件(转载待完善) IBatis 动态查询条件 下面这个配置基本上包含了最复杂的功能:分页\搜索\排序\缓存\传值Hash表\返回hash表\动态sql <statement ...
- ibatis动态查询条件
ibatis的调试相对困难,出错的时候主要依据是log4生成的log文件和出错提示,这方面要能比较熟练的看懂. 下面这个配置基本上包含了最复杂的功能:分页\搜索\排序\缓存\传值Hash表\返回has ...
- iBatis 动态SQL别名查询结果为Null问题
iBatis 动态SQL别名查询结果为Null问题 在项目中使用了iBatis,使用xml方便的维护SQL,清晰明了,偶然发现动态拼接的SQL语句在数据中执行很好的返回结果,而到了程序中总是有字段返回 ...
- ibatis动态条件匹配标签dynamic prepend=WHERE
1.项目中xml文件 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE sqlMap ...
- 转:ibatis动态sql
直接使用JDBC一个非常普遍的问题就是动态SQL.使用参数值.参数本身和数据列都是动态SQL,通常是非常困难的.典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的字符串连接.对于这个问 ...
- ibatis 动态语句拼写心得
ibatis 动态语句拼写心得 文章分类:Java编程 项目中用到了ibatis.看了很多篇在XML 里动态编写sql 的文章! 我突然有了疑问,在一个statement 中可以包含多个 dynami ...
- LINQ to SQL 运行时动态构建查询条件
原文地址:http://msdn.microsoft.com/zh-cn/dd567295.aspx 在进行数据查询时,经常碰到需要动态构建查询条件.使用LINQ实现这个需求可能会比以前拼接SQL语句 ...
- ibatis动态语句中的prepend
关于ibatis动态sql的prepend的属性,我们需要理解一下几点 select * from student <dynamic prepend="where"> ...
- Mybatis+MySQL动态分页查询数据经典案例
最近在用Mybatis做项目的时候遇到了不少问题,今天我就在这和大家分享一下,稀稀拉拉的研究了两天,终于搞好了! 开发人员:1111 开发软件:Myeclipse 用到的框架技术:Mybatis 数据 ...
最新文章
- 什么是人工神经网络?
- 一代传奇,“全球第一CEO”:杰克·韦尔奇逝世了!
- Selenium3+python自动化008-操作浏览器基本方法
- 大数据时代第一部分思维导图_大数据时代总结思维导图模板分享
- async与await封装ajax请求
- PIC32单片机harmony开发环境搭建并新建harmony工程
- python多线程没用_Python中的多线程cv2.imshow()不起作用
- 用java写一个if语句
- java转安卓快吗_安卓开发者要从Java转到Kotlin吗?谷歌说后者支持更多
- DropDownList 数据绑定
- docker镜像制作、数据管理
- 光纤中的非线性光学效应
- surfer10 地学计算机制图 pdf,Surfer 10地学计算机制图
- android监控树莓派,树莓派定制为无线便携监控摄像头
- 我分析了100篇文章,总结出5点头条号推荐机制真相
- 【WiFi】Wi-Fi 5(802.11ac) 与 Wifi 6 (802.11ax)RF的关键变化
- 我的macbook应用清单
- 安装银河麒麟桌面系统V10【超详细图文教程】
- 【C++】RAll,裸指针,弃用auto_ptr原因
- 好用的报表分析软件有哪些?
热门文章
- 电工杯:电动汽车的充放电优化(有数据代码下载链接)
- VTK:受约束的 Delaunay 2D用法实战
- VTK:绘制单元格颜色用法实战
- VTK:绘制箱形图 BoxChart用法实战
- opengl加载显示3D模型X类型文件
- wxWidgets:wxMDIParentFrame类用法
- boost::spirit模块从不同序列中元素的解析输入填充单个融合序列
- boost::interprocess::ipcdetail::private_adaptive_node_pool用法的测试程序
- boost::fusion::transform用法的测试程序
- VTK:可视化之ProjectSphere