如何结合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>
如何结合IbatisNet的LIST遍历实现模糊查询的更多相关文章
- java 遍历list 模糊查询用
java 遍历list 模糊查询用 /** * 筛选list * @param list 要筛选的list * @param key 筛选的key * @param <T> * @retu ...
- oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段(存储过程)
语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 . 代码如下: declare s_sql clob:=''; -- 声明一个变量,该变量用于 ...
- JSTree下的模糊查询算法——树结构数据层次遍历和递归分治地深入应用
A表示区域节点,S表示站点结点 问题描述:现有jstree包含左图中的所有结点信息(包含区域结点和站点结点),需要做到输入站点名称模糊查询,显示查询子树结果如右图 解决策略: 1.先模糊查询所得站点所 ...
- 模糊查询基于select遍历json文件自动填充的实现
HTML页面 <tr> <td align="left"><span>案由</span> <input type=" ...
- combobox实现模糊查询自动填充
利用winform设计软件界面时,经常用到combobox控件,但有时需要绑定数据表中的数据,更进一步,需要实现对数据表中数据的模糊查询功能.本文就讲讲述如何用C#实现combobox下拉列表的模糊查 ...
- Winform如何实现ComboBox模糊查询
最近朋友问了一个关于Winform实现ComboBox模糊查询的知识点,自己好久没有搞Winform了,就上手练了一下,废话不多说,进入正题. 前台设计: 前台就是一个简单的Form窗体+一个Comb ...
- jdbc中如何实现模糊查询
情况如何 再利用jdbc执行sql语句的时候,对于其他的句子的执行没什么太大的问题:加上占位符,然后设置占位符的值. 但是在模糊查询的时候,一直都写不对,这里提供了两种可选的解决办法,以供参考. 解决 ...
- SQL模糊查询与删除多条语句复习
string IDlist="1,2,3"; 批量删除数据 StringBuilder strsql=new StringBuilder(); strSql.Append(&quo ...
- Python模糊查询本地文件夹去除文件后缀(7行代码)
Python模糊查询本地文件夹去除文件后缀 import os,re def fuzzy_search(path): word= input('请输入要查询的内容:') for filename in ...
随机推荐
- 【前端】CSS
CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素.l 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实 ...
- C# 共享内存(转)
以下是一个C#操作内存的一个类,只要将下面的类添加到相应的项目中,该项目就可以对内存进行直接操作! using System.Runtime.InteropServices; //添加如下命名空 ...
- 利用email.net设置网络代理发邮件
近期在做一个项目,客户的内部网络须要设置代理才干收发邮件,本来一个简单的东西突然变得复杂了,在baidu搜索了非常久都没找到适合的组件.baidu就像个废物一样,没办法仅仅能去yahoo搜,结果在微软 ...
- C# Interview Questions:C#-English Questions
This is a list of questions I have gathered from other sources and created myself over a period of t ...
- C 语言文件拷贝
相关的方法: int fputs(const char*s,FILE *stream); int gets(char *s,int size,FILE *stream); 具体代码如下 /** *@a ...
- DDR3调试总结
DDR3调试总结 本文为原创,转载请注明作者与出处 http://blog.csdn.net/hanfei_1/article/details/70546010 以前同是DDR3的无知少年,由于项目需 ...
- EF检索中文失败的解决办法
1. MYSQL: 保证所有的的列都是UTF8格式. 2. VS2010: 在data server建立连接时,选择advance,将chracterset设成utf8,这样在VS2010里查看和更改 ...
- 140726暑期培训.txt
1. 输入多组数据的时候 while(scanf("%s",s)!=EOF) while(gets(s)!=NULL) 用gets和scanf不 ...
- jquery的input:type=file实现文件上传
<!DOCTYPE html> <html> <head> <title>html5_2.html</title> <style> ...
- Effective Java学习笔记--创建和销毁对象
创建和销毁对象 一.静态工厂方法代替构造器 静态工厂方法的优缺点 优点: 1.可以自定义名称(可以将功能表述的更加清晰) 2.不必每次调用都创建新的对象(同一对象重复使用) 3.返回的类型可以是原返回 ...