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>

相关文章