前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何结合IbatisNet的LIST遍历实现模糊查询

如何结合IbatisNet的LIST遍历实现模糊查询

作者头像
张善友
发布2018-01-19 11:40:50
8550
发布2018-01-19 11:40:50
举报
文章被收录于专栏:张善友的专栏张善友的专栏

我仿照Java的Spring+Ibatis+Struct用Castle+IBatisNet+Asp.net的开发框架的DAO的基类:BaseSqlMapDao内定义了一个内部类来辅助模糊查询。内部类代码如下:

代码语言:js
复制
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;
    }
   }
  }

在需要使用模糊查询的数据访问类的方法中使用方法如下: 例如数据访问类PersonInfoDao继承自BaseSqlMapDao,方法

代码语言:js
复制
  /// <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>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2005-08-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档