Ibatis的动态查询使得数据操作变得非常的灵活,下次举出了常用的动态查询的属性信息:
Ibatis配置信息

Xml代码  
  1. <!-- Dynamic Sql -->
  2. <typeAlias alias="Student" type="com.ibatis.Student" />
  3. <typeAlias alias="StudentDTO" type="com.ibatis.StudentDTO" />
  4. <select id="dynamicGetStudent" parameterClass="StudentDTO"
  5. resultClass="Student">
  6. select *
  7. from student
  8. <dynamic prepend="WHERE">
  9. <isNotEqual prepend="AND" property="sid" compareValue="0">
  10. sid = #sid#
  11. </isNotEqual>
  12. <isNotNull prepend="AND" property="sname">
  13. sname = #sname#
  14. </isNotNull>
  15. </dynamic>
  16. <dynamic prepend="order by">
  17. <isParameterPresent>
  18. <isEqual prepend="order by" property="sort" compareValue="1">
  19. sname desc,socre
  20. </isEqual>
  21. <isEqual prepend="order by" property="sort" compareValue="2">
  22. sname asc,socre
  23. </isEqual>
  24. </isParameterPresent>
  25. </dynamic>
  26. </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的信息

Java代码  
  1. package com.ibatis;
  2. import java.util.Date;
  3. public class Student {
  4. private int sid;
  5. private String sname;
  6. private String major;
  7. private Date birth;
  8. private int socre;
  9. public int getSid() {
  10. return sid;
  11. }
  12. public void setSid(int sid) {
  13. this.sid = sid;
  14. }
  15. public String getSname() {
  16. return sname;
  17. }
  18. public void setSname(String sname) {
  19. this.sname = sname;
  20. }
  21. public String getMajor() {
  22. return major;
  23. }
  24. public void setMajor(String major) {
  25. this.major = major;
  26. }
  27. public Date getBirth() {
  28. return birth;
  29. }
  30. public void setBirth(Date birth) {
  31. this.birth = birth;
  32. }
  33. public int getSocre() {
  34. return socre;
  35. }
  36. public void setSocre(int socre) {
  37. this.socre = socre;
  38. }
  39. @Override
  40. public String toString() {
  41. String content = "Sid="+this.sid+"\t"+"Sname="+this.sname+"\t"+this.birth.toLocaleString();
  42. return content;
  43. }
  44. }
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的信息

Java代码  
  1. package com.ibatis;
  2. import java.util.Date;
  3. public class StudentDTO {
  4. private int sid;
  5. private String sname;
  6. private String major;
  7. private Date birth;
  8. private int socre;
  9. private int sort;
  10. public int getSort() {
  11. return sort;
  12. }
  13. public void setSort(int sort) {
  14. this.sort = sort;
  15. }
  16. public int getSid() {
  17. return sid;
  18. }
  19. public void setSid(int sid) {
  20. this.sid = sid;
  21. }
  22. public String getSname() {
  23. return sname;
  24. }
  25. public void setSname(String sname) {
  26. this.sname = sname;
  27. }
  28. public String getMajor() {
  29. return major;
  30. }
  31. public void setMajor(String major) {
  32. this.major = major;
  33. }
  34. public Date getBirth() {
  35. return birth;
  36. }
  37. public void setBirth(Date birth) {
  38. this.birth = birth;
  39. }
  40. public int getSocre() {
  41. return socre;
  42. }
  43. public void setSocre(int socre) {
  44. this.socre = socre;
  45. }
  46. @Override
  47. public String toString() {
  48. String content = "Sid="+this.sid+"\t"+"Sname="+this.sname+"\t"+this.birth.toLocaleString();
  49. return content;
  50. }
  51. }
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中的调用信息

Java代码  
  1. @SuppressWarnings("unchecked")
  2. public static void main(String[] args) {
  3. List<Student> list = dao.dynamicGetStudent(studentDTO);
  4. for(Student student : list){
  5. System.out.println("name:"+student.getSname());
  6. }
  7. System.out.println("size:"+list.size());
  8. }
  9. @Override
  10. public List dynamicGetStudent(StudentDTO studentDTO) {
  11. List result = null;
  12. try {
  13. result = sqlMapClient.queryForList("dynamicGetStudent",studentDTO);
  14. } catch (SQLException e) {
  15. // TODO Auto-generated catch block
  16. e.printStackTrace();
  17. }
  18. return result;
  19. }
@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)查询相关推荐

  1. ibatis动态查询条件(转载待完善)

    ibatis动态查询条件(转载待完善) IBatis 动态查询条件 下面这个配置基本上包含了最复杂的功能:分页\搜索\排序\缓存\传值Hash表\返回hash表\动态sql <statement ...

  2. ibatis动态查询条件

    ibatis的调试相对困难,出错的时候主要依据是log4生成的log文件和出错提示,这方面要能比较熟练的看懂. 下面这个配置基本上包含了最复杂的功能:分页\搜索\排序\缓存\传值Hash表\返回has ...

  3. iBatis 动态SQL别名查询结果为Null问题

    iBatis 动态SQL别名查询结果为Null问题 在项目中使用了iBatis,使用xml方便的维护SQL,清晰明了,偶然发现动态拼接的SQL语句在数据中执行很好的返回结果,而到了程序中总是有字段返回 ...

  4. ibatis动态条件匹配标签dynamic prepend=WHERE

    1.项目中xml文件 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE sqlMap ...

  5. 转:ibatis动态sql

     直接使用JDBC一个非常普遍的问题就是动态SQL.使用参数值.参数本身和数据列都是动态SQL,通常是非常困难的.典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的字符串连接.对于这个问 ...

  6. ibatis 动态语句拼写心得

    ibatis 动态语句拼写心得 文章分类:Java编程 项目中用到了ibatis.看了很多篇在XML 里动态编写sql 的文章! 我突然有了疑问,在一个statement 中可以包含多个 dynami ...

  7. LINQ to SQL 运行时动态构建查询条件

    原文地址:http://msdn.microsoft.com/zh-cn/dd567295.aspx 在进行数据查询时,经常碰到需要动态构建查询条件.使用LINQ实现这个需求可能会比以前拼接SQL语句 ...

  8. ibatis动态语句中的prepend

    关于ibatis动态sql的prepend的属性,我们需要理解一下几点 select * from student <dynamic prepend="where"> ...

  9. Mybatis+MySQL动态分页查询数据经典案例

    最近在用Mybatis做项目的时候遇到了不少问题,今天我就在这和大家分享一下,稀稀拉拉的研究了两天,终于搞好了! 开发人员:1111 开发软件:Myeclipse 用到的框架技术:Mybatis 数据 ...

最新文章

  1. 什么是人工神经网络?
  2. 一代传奇,“全球第一CEO”:杰克·韦尔奇逝世了!
  3. Selenium3+python自动化008-操作浏览器基本方法
  4. 大数据时代第一部分思维导图_大数据时代总结思维导图模板分享
  5. async与await封装ajax请求
  6. PIC32单片机harmony开发环境搭建并新建harmony工程
  7. python多线程没用_Python中的多线程cv2.imshow()不起作用
  8. 用java写一个if语句
  9. java转安卓快吗_安卓开发者要从Java转到Kotlin吗?谷歌说后者支持更多
  10. DropDownList 数据绑定
  11. docker镜像制作、数据管理
  12. 光纤中的非线性光学效应
  13. surfer10 地学计算机制图 pdf,Surfer 10地学计算机制图
  14. android监控树莓派,树莓派定制为无线便携监控摄像头
  15. 我分析了100篇文章,总结出5点头条号推荐机制真相
  16. 【WiFi】Wi-Fi 5(802.11ac) 与 Wifi 6 (802.11ax)RF的关键变化
  17. 我的macbook应用清单
  18. 安装银河麒麟桌面系统V10【超详细图文教程】
  19. 【C++】RAll,裸指针,弃用auto_ptr原因
  20. 好用的报表分析软件有哪些?

热门文章

  1. 电工杯:电动汽车的充放电优化(有数据代码下载链接)
  2. VTK:受约束的 Delaunay 2D用法实战
  3. VTK:绘制单元格颜色用法实战
  4. VTK:绘制箱形图 BoxChart用法实战
  5. opengl加载显示3D模型X类型文件
  6. wxWidgets:wxMDIParentFrame类用法
  7. boost::spirit模块从不同序列中元素的解析输入填充单个融合序列
  8. boost::interprocess::ipcdetail::private_adaptive_node_pool用法的测试程序
  9. boost::fusion::transform用法的测试程序
  10. VTK:可视化之ProjectSphere