我仿照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>

如何结合IbatisNet的LIST遍历实现模糊查询的更多相关文章

  1. java 遍历list 模糊查询用

    java 遍历list 模糊查询用 /** * 筛选list * @param list 要筛选的list * @param key 筛选的key * @param <T> * @retu ...

  2. oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段(存储过程)

    语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 . 代码如下: declare s_sql clob:=''; -- 声明一个变量,该变量用于 ...

  3. JSTree下的模糊查询算法——树结构数据层次遍历和递归分治地深入应用

    A表示区域节点,S表示站点结点 问题描述:现有jstree包含左图中的所有结点信息(包含区域结点和站点结点),需要做到输入站点名称模糊查询,显示查询子树结果如右图 解决策略: 1.先模糊查询所得站点所 ...

  4. 模糊查询基于select遍历json文件自动填充的实现

    HTML页面 <tr> <td align="left"><span>案由</span> <input type=" ...

  5. combobox实现模糊查询自动填充

    利用winform设计软件界面时,经常用到combobox控件,但有时需要绑定数据表中的数据,更进一步,需要实现对数据表中数据的模糊查询功能.本文就讲讲述如何用C#实现combobox下拉列表的模糊查 ...

  6. Winform如何实现ComboBox模糊查询

    最近朋友问了一个关于Winform实现ComboBox模糊查询的知识点,自己好久没有搞Winform了,就上手练了一下,废话不多说,进入正题. 前台设计: 前台就是一个简单的Form窗体+一个Comb ...

  7. jdbc中如何实现模糊查询

    情况如何 再利用jdbc执行sql语句的时候,对于其他的句子的执行没什么太大的问题:加上占位符,然后设置占位符的值. 但是在模糊查询的时候,一直都写不对,这里提供了两种可选的解决办法,以供参考. 解决 ...

  8. SQL模糊查询与删除多条语句复习

    string IDlist="1,2,3"; 批量删除数据 StringBuilder strsql=new StringBuilder(); strSql.Append(&quo ...

  9. Python模糊查询本地文件夹去除文件后缀(7行代码)

    Python模糊查询本地文件夹去除文件后缀 import os,re def fuzzy_search(path): word= input('请输入要查询的内容:') for filename in ...

随机推荐

  1. jConsole,jvisualvm和jmap使用

    JConsole     JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.可以轻松地使用 JConsole来监控 Java 应用程序性能和跟踪 Jav ...

  2. 基于vue单页应用的例子

    代码地址如下:http://www.demodashi.com/demo/13374.html 目录结构 src目录 主要的代码目录 components 存放项目组件 router 路由文件 sto ...

  3. zabbix报错listener failed: zbx_tcp_listen() fatal error: unable to serve on any address

    I'm trying to install zabbix on a new (virtual) server. But i have troubles with the zabbix_agentd o ...

  4. RS:关于数据挖掘中的推荐系统

    一.推荐系统概述和常用评价指标 1.1 推荐系统的特点 在知乎搜了一下推荐系统,果真结果比较少,显得小众一些,然后大家对推荐系统普遍的观点是: (1)重要性UI>数据>算法,就是推荐系统中 ...

  5. Google两步验证安装使用方法

    http://www.williamlong.info/archives/2754.html

  6. Ajax高级应用---Comet

    非常适合处理体育比赛的分数和股票报价 1.HTTP流 将输出缓存中的内容一次性全部发送到客户端的功能是实现HTTP流的关键所在.

  7. PayPal 对接

    时间:2019-1-29 15:39:39 文章相应链接: 官方SDK:https://developer.paypal.com/docs/api/rest-sdks/ 官方API:https://d ...

  8. .Net程序员面试 每个人都应知道篇 (回答Scott Hanselman的问题)

    昨天回答了Scott Hanselman在他清单上关于C#那部分的题目,.Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题),今天接着回答他在清单上列出的"每个写 ...

  9. Python zip Python zip函数

    zip([iterable, ...])zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的li ...

  10. Java并发编程(七):线程安全策略

    Java多线程——不可变对象 Java多线程——线程封闭 java线程不安全类与写法 Java线程安全同步容器 Java里的并发容器与安全共享策略总结