|
|
51CTO旗下网站
|
|
移动端

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

iBATIS模糊查询的实现实例向你介绍了iBATIS模糊查询是如何实现的,以及具体的源码实现。

作者:佚名来源:cnblogs|2009-07-22 11:27

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

  1. protected internal  class KeyWordSearch   
  2.   {  
  3.    private IList keywordList = new ArrayList();  
  4.  
  5.    public KeyWordSearch(String keywords)   
  6.    {  
  7.     StringTokenizer splitter = new StringTokenizer(keywords, " "false);  
  8.     string token = null;  
  9.  
  10.     IEnumerator enumerator = splitter.GetEnumerator();  
  11.  
  12.     while (enumerator.MoveNext())   
  13.     {  
  14.      token = (string)enumerator.Current;  
  15.      keywordList.Add("%" + token + "%");  
  16.     }  
  17.    }  
  18.  
  19.    public IList KeywordList   
  20.    {  
  21.     get  
  22.     {  
  23.      return keywordList;  
  24.     }  
  25.    }  
  26.   } 

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

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

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

iBATIS模糊查询的情况就向你介绍到这里,希望通过例子能够使你对iBATIS模糊查询的是实现有所帮助。

【编辑推荐】

  1. iBATIS映射文件基础浅谈
  2. iBATIS ParameterMap配置实例浅析
  3. iBATIS ResultMap基础浅析
  4. iBATIS CacheModel使用浅析
  5. iBATIS分页实例中ObjectDataSource的应用浅析
【责任编辑:李彦光 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

我的运维日志系统构建之路

我的运维日志系统构建之路

数据驱动运维
共18章 | 我叫于小炳

191人订阅学习

CentOS文件服务的最佳实战

CentOS文件服务的最佳实战

涨薪跳槽必备技能
共15章 | 追风蚂蚁

88人订阅学习

小白网工宝典

小白网工宝典

一次搞定思科华为
共15章 | 思科小牛

431人订阅学习

读 书 +更多

精通SOA:基于服务总线的Struts+EJB+Web Service

Java的出现,实现了跨操作系统平台的程序开发,以Java为基础的J2EE技术已经成为因特网服务技术的主流。然而,以J2EE为基础的SOA架构技术必...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客