`

iBATIS模糊查询的实现实例浅析

阅读更多
iBATIS模糊查询的实现是如何的呢?让我们先看看例子,仿照Java的Spring+Ibatis+Struct用Castle+IBatisNet+Asp.net的开发框架的DAO的基类:BaseSqlMapDao内定义了一个内部类来辅助模糊查询。内部类代码如下:

protected internal  class KeyWordSearch   
  {  
   private IList keywordList = new ArrayList();  
 
   public KeyWordSearch(String keywords)   
   {  
    StringTokenizer splitter = new StringTokenizer(keywords, " ", false);  
    string token = null;  
 
    IEnumerator enumerator = splitter.GetEnumerator();  
 
    while (enumerator.MoveNext())   
    {  
     token = (string)enumerator.Current;  
     keywordList.Add("%" + token + "%");  
    }  
   }  
 
   public IList KeywordList   
   {  
    get  
    {  
     return keywordList;  
    }  
   }  
  } 

  在需要使用iBATIS模糊查询的数据访问类的方法中使用方法如下:

  例如数据访问类PersonInfoDao继承自BaseSqlMapDao,方法

/// <summary>  
  /// 检索求职者信息,根据关键字检索  
  /// </summary>  
  public IList SearchPersonInfoList(string keywords)  
  {  
   object parameterObject = new KeyWordSearch(keywords);  
   return this.ExecuteQueryForList("SearchPersonList", parameterObject);  
  }  
 
<select id="SearchPersonList" resultMap="PersonResult">  
   select UserId,UserName,Sex,Birthday,Mobile,HomeTel,EMail,LivingArea,  
            RegisteredLocus,GraduateSchool,MajorSpecialty,JobExperience,MonthlyPay,  
            Special,Resume,city.code,city.name,person.NationId,Nation.NationName,  
            person.JobId,job.jobName,person.degreeId,degree.DegreeName  
            from Career_PersonInfo person ,Career_Nation nation,Career_Job job,Career_City city,Career_Degree degree  
            where person.CityCode = city.code and person.NationId = nation.NationId and person.jobid = job.jobId  
            and person.degreeId = degree.degreeId  
            <dynamic prepend="and">   
    <iterate property="KeywordList" open="" close="" conjunction="OR">  
     lower(job.jobName) like #KeywordList[]#   
    </iterate>  
   </dynamic>  
  </select> 

分享到:
评论

相关推荐

    iBATIS模糊查询

    iBATIS模糊查询是指使用iBATIS框架实现模糊查询的方法。模糊查询是指在数据库中搜索包含指定字符串的记录,通常使用LIKE谓词来实现。 在iBATIS中,模糊查询可以通过在映射文件中定义SQL语句来实现。例如,以下是...

    IBatis完成单表基本的数据库操作 模糊查询

    标题 "IBatis完成单表基本的数据库操作 模糊查询" 涉及到的是使用iBatis这个轻量级的持久层框架进行数据库的基本操作,特别是模糊查询。iBatis是一个优秀的SQL映射框架,它允许开发者将SQL语句与Java代码分离,提高...

    Ibatis 入门经典 实例

    《Ibatis 入门经典 实例》 Ibatis 是一款著名的轻量级 Java 持久层框架,它提供了一种映射 SQL 和 Java 对象的简单方式,从而减轻了开发人员在数据库操作中的工作负担。这篇实例教程将带你深入理解 Ibatis 的核心...

    ibatis学习完整实例,例子

    此外,Ibatis的动态SQL功能使得在不写大量Java代码的情况下,可以灵活构建复杂的查询条件。比如,使用、、、等标签,可以根据条件动态生成SQL语句。在"ibatistest2"的示例中,这些动态SQL的运用无疑增加了教程的实用...

    Ibatis.net学习和实例~

    Ibatis.net会自动实现这些接口,从而让你可以方便地调用SQL操作。 4. **事务管理**:Ibatis.net支持事务控制,可以通过编程方式或配置文件来管理事务的开始、提交和回滚。 5. **动态SQL**:Ibatis.net允许你在SQL...

    ibatis +mysql 实例

    7. **Example类和Criteria API**:Ibatis提供的Example类和Criteria API可以帮助我们构建复杂的查询条件,实现动态查询。 在"demo_ibatis"这个项目中,你可以看到一个完整的Web应用,包含了Ibatis和MySQL的整合,...

    IBATIS开发使用实例

    本文将围绕“IBATIS开发使用实例”这一主题,深入解析复杂SQL查询的应用,尤其是如何利用SQL进行多表关联、条件筛选以及聚合函数的使用。 ### IBATIS简介 IBATIS,现被称为MyBatis,是一种优秀的持久层框架,它...

    iBatis开发指南和一个iBatis实例

    接着,"iBatis实例"部分提供了实际操作的代码示例,这是理论知识的实践应用。通过这些实例,你可以学习到如何配置数据源、如何创建Mapper接口和XML配置文件,以及如何处理查询结果。例如,你可能看到如何使用iBatis...

    iBATIS教程之快速入门浅析

    iBATIS 是一款轻量级的Java持久层框架,它主要负责对象关系映射(Object-Relational Mapping,简称O/R Mapping),使得开发者可以将关注点集中在业务逻辑上,而无需过多地处理数据库操作的细节。与Hibernate等其他...

    07_ibatis教程_模糊查询实体对象.zip

    在iBatis中,我们可以利用动态SQL来实现模糊查询。动态SQL允许我们在运行时根据需要构建SQL语句,而不是在编译时固定下来。例如,我们可以在XML映射文件中定义一个查询方法,如下所示: ```xml SELECT * FROM ...

    ibatis 框架原理实现

    **Ibatis 框架原理实现** Ibatis 是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,从而避免了Java代码与SQL的耦合,提高了开发效率。在这个自己编写的Ibatis框架实现中,我们可以看到类似的...

    07_ibatis教程_模糊查询实体对象.rar )

    在Ibatis中,实现模糊查询的方法主要有以下几种: 1. **使用Like关键字**:在SQL语句中,可以使用`LIKE`关键字配合通配符`%`来实现模糊查询。例如,如果想查询名字中包含"张"的所有用户,可以编写如下的动态SQL: ...

    Ibatis连接MySQL数据库实例

    首先,要实现Ibatis连接MySQL,我们需要以下组件: 1. **Ibatis框架**:下载并引入Ibatis的jar包到项目中,通常会包括`ibatis-3.x.x.jar`,以及其依赖的`slf4j-api-1.x.x.jar`和`log4j-1.x.x.jar`。 2. **MySQL JDBC...

    struts2+hibernate+spring+ibatis 小实例

    struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+...

    ibatis myeclipse6.5 完整实例

    【标题】"ibatis myeclipse6.5 完整实例"揭示了这是一个关于使用iBatis框架在MyEclipse 6.5集成开发环境下的实际应用案例。iBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,解决了DAO层与...

    Ibatis应用实例.docx

    《Ibatis应用实例》 iBatis是一个轻量级的持久层框架,它作为O/R Mapping解决方案,与Hibernate等其他框架相比,其最大的优势在于简洁易用。对于不需要复杂功能的项目,iBatis是理想的选择,它允许开发者自由地编写...

    IBatis .NET框架实例

    **IBatis .NET框架实例详解** IBatis 是一个流行的数据访问层框架,它在Java世界中广为人知,但同样提供了对.NET平台的支持。本文将深入探讨如何在C# .NET环境中使用IBatis进行数据库操作,这对于初学者来说是一份...

    Ibatis开发实例

    ### Ibatis开发实例详解 #### 一、Ibatis简介与背景 Ibatis 是一个由 Clinton Begin 在 2001 年发起的开源项目,其名称来源于“internet”和“abatis”的组合。最初,该项目的重点是密码软件的开发,但随着时间的...

    ibatis的实现(包含模糊查询、关联查询、增删改查)

    本篇将详细讲解Ibatis在实现模糊查询、关联查询以及增删改查操作时的关键知识点。 首先,模糊查询是数据库操作中常见的功能,Ibatis通过`&lt;if&gt;`标签或`&lt;where&gt;`标签配合`#{}`占位符来实现。例如,如果你有一个用户...

    spring+ibatis 整合的简单实例

    在实际开发中,这个简单的实例可以帮助初学者理解如何在 Spring 和 iBATIS 之间进行集成,以及如何实现基本的 CRUD 操作。随着项目复杂性的增加,可以进一步探索 Spring 的其他模块,如 Spring Security(安全),...

Global site tag (gtag.js) - Google Analytics