zoukankan      html  css  js  c++  java
  • 如何结合IbatisNet的LIST遍历实现模糊查询

    我仿照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;
        }
       }
      }
    在需要使用模糊查询的数据访问类的方法中使用方法如下:
    例如数据访问类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>

  • 相关阅读:
    Windows 之 手机访问 PC 端本地部署的站点
    Java 之 Given final block not properly padded
    关于ie7下display:inline-block;不支持的解决方案
    Oracle 之 获取当前日期及日期格式化
    WebService 之 实例学习一
    第 3 章 共享程序集和强命名程序集
    第 2 章 生成、打包、部署和管理应用程序及类型
    第一章 CLR的执行模型
    CLR 之 内容概述
    网站跨站点脚本,Sql注入等攻击的处理
  • 原文地址:https://www.cnblogs.com/shanyou/p/206026.html
Copyright © 2011-2022 走看看