如何结合IbatisNet的LIST遍历实现模糊查询
我仿照J(rèn)ava的Spring+Ibatis+Struct用Castle+IBatisNet+Asp.net的開發(fā)框架的DAO的基類:BaseSqlMapDao內(nèi)定義了一個內(nèi)部類來輔助模糊查詢。內(nèi)部類代碼如下:
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;
????}
???}
??}
在需要使用模糊查詢的數(shù)據(jù)訪問類的方法中使用方法如下:
例如數(shù)據(jù)訪問類PersonInfoDao繼承自BaseSqlMapDao,方法
/// <summary>
??/// 檢索求職者信息,根據(jù)關(guān)鍵字檢索
??/// </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>
轉(zhuǎn)載于:https://www.cnblogs.com/shanyou/archive/2005/08/02/206026.html
總結(jié)
以上是生活随笔為你收集整理的如何结合IbatisNet的LIST遍历实现模糊查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小班教案《积木真好玩》反思
- 下一篇: 20个寓言故事及道理超短