`
qieyi28
  • 浏览: 158232 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ibatis 动态条件查询

 
阅读更多
Ibatis的动态查询使得数据操作变得非常的灵活,下次举出了常用的动态查询的属性信息:
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;   
    }  

分享到:
评论

相关推荐

    ibatis动态多条件组合查询

    ibatis动态多条件组合查询 实例 说明

    ibatis_动态查询条件

    iBatis 动态查询条件详解 iBatis 是一个基于 Java 的持久层框架,它提供了动态查询条件的功能,可以根据不同的条件生成不同的 SQL 语句。在 iBatis 中,动态查询条件是通过 `&lt;dynamic&gt;` 元素来实现的,该元素可以...

    iBatis条件查询

    在描述中提到的"按条件查询",就是通过iBatis动态构建SQL语句来实现的。开发者可以在SQL Map中定义一个模板SQL,然后在Java代码中传入参数,iBatis会自动替换SQL中的占位符,生成实际的查询语句。这种方式既避免了硬...

    ibatis动态SQL标签用法

    iBatis动态SQL标签用法 iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成...通过使用动态SQL片段和动态条件分页查询,我们可以提高代码的可重用性、查询效率和灵活性。

    ibatis的动态查询

    以上内容详细介绍了 ibatis 中动态查询的基本原理及具体实现方法,包括模糊查询、多条件组合查询以及使用 Map 作为参数的高级用法。这些知识点对于深入理解 ibatis 的动态查询机制非常重要,可以帮助开发者更高效地...

    动态ibatis查询语句配置

    首先,我们需要理解Ibatis动态SQL的基本概念。在Ibatis的XML映射文件中,我们可以通过条件标签来构建动态SQL。这些标签包括`&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`, `&lt;where&gt;`, `&lt;set&gt;`, `&lt;foreach&gt;`等。它们...

    IBATIS动态查询语句.doc

    本文将深入探讨IBATIS动态查询语句的运用,解析其背后的逻辑与机制,以及如何利用这些特性来增强查询的灵活性与安全性。 ### IBATIS动态查询基础 IBATIS,现在更广为人知的名字为MyBatis,是一种半自动映射的持久...

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

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

    Ibatis复杂查询语句.doc

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

    ibatis做连接查询 .doc

    注意,iBatis还支持动态SQL,这意味着你可以在XML配置文件中使用`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`等标签来根据条件动态构建SQL语句,这对于复杂的连接查询非常有用。 总的来说,iBatis提供了强大的SQL定制能力,使得...

    Ibatis查询Id列表.doc

    根据提供的文档信息,我们可以深入探讨Ibatis框架中的一个具体应用场景:如何通过动态SQL查询特定条件下的ID列表。本文将从以下几个方面进行详细解析: ### 一、Ibatis简介 Ibatis是一个基于Java的持久层框架,它...

    iBATIS动态标签

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

    解决IBatis缓存动态字段问题

    ### 解决IBatis缓存动态字段问题 #### 背景与问题描述 在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为...

    ibatis多表查询过程

    iBatis的动态SQL功能非常强大,可以通过`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`、`&lt;where&gt;`、`&lt;set&gt;`等标签编写条件语句,根据传入参数动态生成SQL。 ### 8. 使用`&lt;foreach&gt;`标签 `&lt;foreach&gt;`标签用于遍历...

    ibatis教程_查询指定id的单个对象

    此外,Ibatis支持动态SQL,如`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`等标签,可以根据条件拼接SQL,提高了SQL的灵活性。例如,如果需要在查询时添加额外的条件,你可以这样做: ```xml SELECT * FROM users...

    ibatis 用HashMap解决resultClass映射

    在日常的软件开发过程中,尤其是在处理数据库查询时,我们经常面临一个问题:如何优雅地处理那些未知或动态变化的列名及列数的情况?在这种情况下,传统的实体类映射方式往往难以满足需求。本文将详细介绍如何利用 ...

    ibatis动态注入

    iBATIS动态SQL主要包含两类元素:二元条件元素和一元条件元素。 1. **二元条件元素**: 这些元素将一个属性值与静态值或另一个属性值进行比较,根据比较结果决定是否将元素包含在SQL语句中。比如: - `&lt;isEqual&gt;`...

    ibatis 之分页

    2. **动态SQL**:Ibatis的动态SQL功能可以进一步优化分页查询。通过`&lt;if&gt;`、`&lt;choose&gt;`等标签,可以在SQL中根据条件动态插入分页语句,使得SQL更加灵活。 3. **PageHelper插件**:为了简化分页操作,社区开发了...

    ibatis总结 ibatis ibatis ibatis ibatis

    在SQL映射文件中,可以使用动态SQL来处理复杂的查询条件,如`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`等标签。 2. 数据库代码规范: - 在编写SQL时,应避免使用全模糊匹配`LIKE '%text%'`,而应尽可能使用带有...

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

    2. **条件过滤**:通过 `&lt;dynamic&gt;` 标签实现了动态 SQL,根据传入的参数决定是否添加 WHERE 子句。 3. **排序**:通过 `$page.sortFieldName$` 实现动态排序字段的选择,并且支持正序或倒序。 4. **分页**:使用 `...

Global site tag (gtag.js) - Google Analytics