`
xiaofan_0204
  • 浏览: 126966 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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>

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;
	}
	
}


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;
	}
	
}


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;
	}

动态查询中的常用属性:
属性关键字含义
<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
1
0
分享到:
评论

相关推荐

    ibatis的dynamicSQL中,关于prepend的使用

    在探讨ibatis中的动态SQL(Dynamic SQL)及`prepend`的使用时,我们首先需要对ibatis有一个基本的理解。ibatis是一种开源的数据访问层框架,它简化了Java应用程序与数据库之间的交互过程。通过使用XML配置文件来定义...

    iBATIS动态标签

    iBATIS动态标签是SQL映射文件中的一种功能强大的特性,它允许在SQL语句中进行条件判断,根据传入的参数动态生成合适的查询条件。动态标签主要用于提高灵活性,使得SQL映射文件能够适应多种查询场景,而无需为每种...

    ibatis_动态查询条件

    在 iBatis 中,动态查询条件是通过 `&lt;dynamic&gt;` 元素来实现的,该元素可以根据参数的值来生成不同的 SQL 语句。 在 iBatis 中,参数可以是基本类型、字符串、集合等,它们可以通过 `#` symbols 来传递给 SQL 语句。...

    ibatis动态SQL标签用法

    iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成不同的SQL语句,从而提高查询效率和灵活性。 动态SQL片段 iBatis提供了动态SQL片段的功能,可以将SQL语句拆分成小的...

    ibatis的动态查询

    ### ibatis的动态查询知识点详解 #### 一、模糊查询 **知识点1:** 在进行模糊查询时,ibatis支持两种不同的语法标记:`#` 和 `$`。 1. **使用 `$value$` 进行模糊查询:** - 在进行模糊查询时,使用 `$value$` ...

    ibatis_3.0_Dynamic_Sql_设计解析(并与2.x的差异)

    Dynamic Sql是指在运行时动态构建SQL语句的能力,这种能力对于处理复杂的查询或根据不同的业务逻辑生成不同的SQL语句非常有用。ibatis框架自2.x版本起就提供了Dynamic Sql的支持,但在3.0版本中,这一功能得到了极大...

    IBATIS动态查询语句.doc

    在IT领域的数据库操作中,IBATIS框架提供了一种强大且灵活的方式来进行SQL查询,尤其在动态查询方面表现得尤为突出。本文将深入探讨IBATIS动态查询语句的运用,解析其背后的逻辑与机制,以及如何利用这些特性来增强...

    ibatis中使用安全的拼接语句,动态查询,大于、小于、等于.doc

    iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...

    Ibatis复杂查询语句.doc

    在Ibatis中,复杂查询通常涉及到多个表的联接、条件动态拼接、子查询以及各种数据类型的处理。文档"Ibatis复杂查询语句.doc"所展示的查询语句就是一个很好的例子,展示了Ibatis如何处理复杂的数据库操作。接下来,...

    ibatis dynamic 用法

    Dynamic SQL 功能是 ibatis 中的一项重要特性,允许开发者根据运行时的条件动态构建 SQL 语句。本文将详细介绍 ibatis 中 Dynamic SQL 的使用方法,特别关注 `&lt;dynamic&gt;` 标签及其相关的子标签。 #### 二、Dynamic ...

    ibatis动态注入

    iBATIS,作为一款优秀的持久层框架,提供了强大的动态SQL功能,解决了直接使用JDBC时编写复杂动态SQL的难题。本文将深入探讨iBATIS动态注入的相关知识点。 iBATIS动态SQL主要通过XML映射文件中的特定标签实现,允许...

    Ibatis查询语句里,可以使用多表查询

    ### iBatis 多表查询知识点详解 #### 一、iBatis简介 iBatis 是一款优秀的持久层框架,它将 SQL 映射到 Java 对象,简化了 JDBC 编程过程中的繁琐操作,提高了开发效率。iBatis 的核心功能包括 SQL 映射、动态 SQL...

    ibatis 动态代理dtd

    在这个查询中,使用了`&lt;dynamic&gt;`元素结合`&lt;isNotNull&gt;`元素来根据传入的参数动态生成WHERE子句。 #### SQL更新示例 ```xml update SGS_KEY_FLOW set &lt;dynamic&gt; KEY_FLOW_ID = #keyFlowId# ,"&gt; BRANCH_NAME =...

    ibatis and和or联合查询 .doc

    在ibatis中,实现复杂的`AND` 和 `OR` 联合查询可以通过动态SQL来完成。动态SQL允许在运行时动态地构建SQL语句,从而实现更加灵活的查询功能。 #### 四、示例解析 根据提供的部分代码,我们可以详细分析如何在...

    ibatis_3.0_Dynamic_Sql_设计解析

    ibatis,ibatis,ibatis,ibatis,ibatis

    ibatis的CRUD+存储过程+动态查询

    **动态查询(Dynamic Querying)** Ibatis的动态SQL功能允许在XML映射文件中构建条件语句。例如,根据用户名和年龄筛选用户: ```xml SELECT * FROM users != null"&gt; AND name LIKE #{name} != null"&gt; ...

    Ibatis常用sql语句

    根据给定的文件信息,以下是对“Ibatis常用...Ibatis通过其动态SQL标签如`iterate`, `isNotNull`, `dynamic`等提供了极高的灵活性,能够有效应对复杂多变的业务需求。掌握这些基本用法对于提升Ibatis开发效率至关重要。

    ibatis2.X升级mybatis3.X之曲径通幽处

    动态SQL是Ibatis的一大亮点,但在3.x中,动态SQL表达式变得更加强大,可以更好地处理复杂的查询条件。例如,`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`等标签的使用,让SQL语句可以根据条件动态生成,提高了代码...

    ibatis

    iBATIS 提供了一种将SQL查询与Java代码分离的方法,增强了数据库操作的灵活性和可维护性。"ibatis in action" 暗示这可能是一本关于如何有效使用iBATIS的实战指南,通常这类书籍会深入讲解框架的各个方面,包括安装...

Global site tag (gtag.js) - Google Analytics