- 浏览: 158232 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
18335864773:
推荐用户国内自主研发的组件 pageoffice 组件生成 e ...
java 导出Excel poi 实现 -
nijinglie:
这个jsp页面具体怎么写????
java 导出Excel poi 实现 -
fxwjsw:
Array.prototype.distinct = func ...
js数组去除重复项目 -
ae6623:
讲的很好!!赞一个,嗯是图片向上滚动了-100px;这就好理解 ...
css背景定位技术 -
qieyi28:
呵呵
javascript &的秒用
Ibatis的动态查询使得数据操作变得非常的灵活,下次举出了常用的动态查询的属性信息:
Ibatis配置信息
Xml代码
Student的信息
Java代码
StudentDTO的信息
Java代码
Java中的调用信息
Java代码
Ibatis配置信息
Xml代码
<!-- 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的信息
Java代码
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; } @Override public String toString() { String content = "Sid="+this.sid+"\t"+"Sname="+this.sname+"\t"+this.birth.toLocaleString(); return content; } }
StudentDTO的信息
Java代码
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; } @Override public String toString() { String content = "Sid="+this.sid+"\t"+"Sname="+this.sname+"\t"+this.birth.toLocaleString(); return content; } }
Java中的调用信息
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; }
发表评论
-
Oracle trunc()函数的用法
2015-07-07 10:32 638--Oracle trunc()函数的用法/**** ... -
Oracle 批量更新 中merge into的使用
2014-07-28 11:03 1690http://blog.csdn.net/yuzhic/ar ... -
dat txt csv 导入到orcale数据 导出为txt
2014-07-18 18:44 921批量插入数据功能 一、明确要插入表,如下 ... -
oracle job 例子
2014-05-22 13:15 680下面是整个操作流程: --学习job --第1步:建 ... -
dbms_job时间设置规则
2014-05-22 12:59 781写一个存储过程名为PROC_JOB_RAIN_JM ... -
oracle学习之bulk collect用法
2014-05-03 12:44 726通过bulk collect减少loop处理的开销,使用Bu ... -
oracle触发器详解
2014-04-23 23:50 709本篇是在转载基础上修改的内容,如有不对之处还请包涵。 本 ... -
oracle正则匹配查询
2014-04-03 16:25 858REGEXP_LIKE 3个参数 第一个是输入的字符串 ... -
为监控而生的数据连接池Druid
2013-11-13 14:31 844这几天看到有人用druid连接池,发现这是一 ... -
ibatis中使用like模糊查询
2013-07-11 15:18 762无效的方法: select * from table1 ... -
Oracle新建用户,角色,授权,建表空间
2013-07-08 15:47 911oracle数据库的权限系统分为系统权限与对象权限。 ... -
sql 避免递归的方法
2012-12-11 10:05 1013今天在开发项目中发现一个很纠结的问题,按父子类修改 C ... -
ibaties 动态拼接
2012-12-10 22:12 923动态拼接实例,这样不用写存储过程也能实现灵活拼接,注意这里用了 ... -
not in,not exists,left join性能对比
2012-11-14 16:40 1397今天注意到,公司的代码里经常用到exists这个用法。 ... -
ORA-12154: TNS: 无法解析指定的连接标识符
2012-09-29 16:16 1430今天在自己win7的笔记本上想把java的开发环境配置 ... -
如何用sql 返回布尔值
2012-03-07 17:45 4480今天在开发中有一个问题让我很是郁闷,感觉有些内容完全可以写 ...
相关推荐
ibatis动态多条件组合查询 实例 说明
iBatis 动态查询条件详解 iBatis 是一个基于 Java 的持久层框架,它提供了动态查询条件的功能,可以根据不同的条件生成不同的 SQL 语句。在 iBatis 中,动态查询条件是通过 `<dynamic>` 元素来实现的,该元素可以...
在描述中提到的"按条件查询",就是通过iBatis动态构建SQL语句来实现的。开发者可以在SQL Map中定义一个模板SQL,然后在Java代码中传入参数,iBatis会自动替换SQL中的占位符,生成实际的查询语句。这种方式既避免了硬...
iBatis动态SQL标签用法 iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成...通过使用动态SQL片段和动态条件分页查询,我们可以提高代码的可重用性、查询效率和灵活性。
以上内容详细介绍了 ibatis 中动态查询的基本原理及具体实现方法,包括模糊查询、多条件组合查询以及使用 Map 作为参数的高级用法。这些知识点对于深入理解 ibatis 的动态查询机制非常重要,可以帮助开发者更高效地...
首先,我们需要理解Ibatis动态SQL的基本概念。在Ibatis的XML映射文件中,我们可以通过条件标签来构建动态SQL。这些标签包括`<if>`, `<choose>`, `<when>`, `<otherwise>`, `<where>`, `<set>`, `<foreach>`等。它们...
本文将深入探讨IBATIS动态查询语句的运用,解析其背后的逻辑与机制,以及如何利用这些特性来增强查询的灵活性与安全性。 ### IBATIS动态查询基础 IBATIS,现在更广为人知的名字为MyBatis,是一种半自动映射的持久...
iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...
在Ibatis中,复杂查询通常涉及到多个表的联接、条件动态拼接、子查询以及各种数据类型的处理。文档"Ibatis复杂查询语句.doc"所展示的查询语句就是一个很好的例子,展示了Ibatis如何处理复杂的数据库操作。接下来,...
注意,iBatis还支持动态SQL,这意味着你可以在XML配置文件中使用`<if>`、`<choose>`、`<when>`等标签来根据条件动态构建SQL语句,这对于复杂的连接查询非常有用。 总的来说,iBatis提供了强大的SQL定制能力,使得...
根据提供的文档信息,我们可以深入探讨Ibatis框架中的一个具体应用场景:如何通过动态SQL查询特定条件下的ID列表。本文将从以下几个方面进行详细解析: ### 一、Ibatis简介 Ibatis是一个基于Java的持久层框架,它...
iBATIS动态标签是SQL映射文件中的一种功能强大的特性,它允许在SQL语句中进行条件判断,根据传入的参数动态生成合适的查询条件。动态标签主要用于提高灵活性,使得SQL映射文件能够适应多种查询场景,而无需为每种...
### 解决IBatis缓存动态字段问题 #### 背景与问题描述 在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为...
iBatis的动态SQL功能非常强大,可以通过`<if>`、`<choose>`、`<when>`、`<otherwise>`、`<where>`、`<set>`等标签编写条件语句,根据传入参数动态生成SQL。 ### 8. 使用`<foreach>`标签 `<foreach>`标签用于遍历...
此外,Ibatis支持动态SQL,如`<if>`、`<choose>`、`<when>`、`<otherwise>`等标签,可以根据条件拼接SQL,提高了SQL的灵活性。例如,如果需要在查询时添加额外的条件,你可以这样做: ```xml SELECT * FROM users...
在日常的软件开发过程中,尤其是在处理数据库查询时,我们经常面临一个问题:如何优雅地处理那些未知或动态变化的列名及列数的情况?在这种情况下,传统的实体类映射方式往往难以满足需求。本文将详细介绍如何利用 ...
iBATIS动态SQL主要包含两类元素:二元条件元素和一元条件元素。 1. **二元条件元素**: 这些元素将一个属性值与静态值或另一个属性值进行比较,根据比较结果决定是否将元素包含在SQL语句中。比如: - `<isEqual>`...
2. **动态SQL**:Ibatis的动态SQL功能可以进一步优化分页查询。通过`<if>`、`<choose>`等标签,可以在SQL中根据条件动态插入分页语句,使得SQL更加灵活。 3. **PageHelper插件**:为了简化分页操作,社区开发了...
在SQL映射文件中,可以使用动态SQL来处理复杂的查询条件,如`<if>`、`<choose>`、`<when>`、`<otherwise>`等标签。 2. 数据库代码规范: - 在编写SQL时,应避免使用全模糊匹配`LIKE '%text%'`,而应尽可能使用带有...
2. **条件过滤**:通过 `<dynamic>` 标签实现了动态 SQL,根据传入的参数决定是否添加 WHERE 子句。 3. **排序**:通过 `$page.sortFieldName$` 实现动态排序字段的选择,并且支持正序或倒序。 4. **分页**:使用 `...