iBATIS模糊查询的实现是如何的呢?让我们先看看例子,仿照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;
}
}
}
在需要使用iBATIS模糊查询的数据访问类的方法中使用方法如下:
例如数据访问类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>
分享到:
相关推荐
iBATIS模糊查询是指使用iBATIS框架实现模糊查询的方法。模糊查询是指在数据库中搜索包含指定字符串的记录,通常使用LIKE谓词来实现。 在iBATIS中,模糊查询可以通过在映射文件中定义SQL语句来实现。例如,以下是...
标题 "IBatis完成单表基本的数据库操作 模糊查询" 涉及到的是使用iBatis这个轻量级的持久层框架进行数据库的基本操作,特别是模糊查询。iBatis是一个优秀的SQL映射框架,它允许开发者将SQL语句与Java代码分离,提高...
《Ibatis 入门经典 实例》 Ibatis 是一款著名的轻量级 Java 持久层框架,它提供了一种映射 SQL 和 Java 对象的简单方式,从而减轻了开发人员在数据库操作中的工作负担。这篇实例教程将带你深入理解 Ibatis 的核心...
此外,Ibatis的动态SQL功能使得在不写大量Java代码的情况下,可以灵活构建复杂的查询条件。比如,使用、、、等标签,可以根据条件动态生成SQL语句。在"ibatistest2"的示例中,这些动态SQL的运用无疑增加了教程的实用...
Ibatis.net会自动实现这些接口,从而让你可以方便地调用SQL操作。 4. **事务管理**:Ibatis.net支持事务控制,可以通过编程方式或配置文件来管理事务的开始、提交和回滚。 5. **动态SQL**:Ibatis.net允许你在SQL...
7. **Example类和Criteria API**:Ibatis提供的Example类和Criteria API可以帮助我们构建复杂的查询条件,实现动态查询。 在"demo_ibatis"这个项目中,你可以看到一个完整的Web应用,包含了Ibatis和MySQL的整合,...
本文将围绕“IBATIS开发使用实例”这一主题,深入解析复杂SQL查询的应用,尤其是如何利用SQL进行多表关联、条件筛选以及聚合函数的使用。 ### IBATIS简介 IBATIS,现被称为MyBatis,是一种优秀的持久层框架,它...
接着,"iBatis实例"部分提供了实际操作的代码示例,这是理论知识的实践应用。通过这些实例,你可以学习到如何配置数据源、如何创建Mapper接口和XML配置文件,以及如何处理查询结果。例如,你可能看到如何使用iBatis...
iBATIS 是一款轻量级的Java持久层框架,它主要负责对象关系映射(Object-Relational Mapping,简称O/R Mapping),使得开发者可以将关注点集中在业务逻辑上,而无需过多地处理数据库操作的细节。与Hibernate等其他...
在iBatis中,我们可以利用动态SQL来实现模糊查询。动态SQL允许我们在运行时根据需要构建SQL语句,而不是在编译时固定下来。例如,我们可以在XML映射文件中定义一个查询方法,如下所示: ```xml SELECT * FROM ...
**Ibatis 框架原理实现** Ibatis 是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,从而避免了Java代码与SQL的耦合,提高了开发效率。在这个自己编写的Ibatis框架实现中,我们可以看到类似的...
在Ibatis中,实现模糊查询的方法主要有以下几种: 1. **使用Like关键字**:在SQL语句中,可以使用`LIKE`关键字配合通配符`%`来实现模糊查询。例如,如果想查询名字中包含"张"的所有用户,可以编写如下的动态SQL: ...
首先,要实现Ibatis连接MySQL,我们需要以下组件: 1. **Ibatis框架**:下载并引入Ibatis的jar包到项目中,通常会包括`ibatis-3.x.x.jar`,以及其依赖的`slf4j-api-1.x.x.jar`和`log4j-1.x.x.jar`。 2. **MySQL JDBC...
struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+...
【标题】"ibatis myeclipse6.5 完整实例"揭示了这是一个关于使用iBatis框架在MyEclipse 6.5集成开发环境下的实际应用案例。iBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,解决了DAO层与...
《Ibatis应用实例》 iBatis是一个轻量级的持久层框架,它作为O/R Mapping解决方案,与Hibernate等其他框架相比,其最大的优势在于简洁易用。对于不需要复杂功能的项目,iBatis是理想的选择,它允许开发者自由地编写...
**IBatis .NET框架实例详解** IBatis 是一个流行的数据访问层框架,它在Java世界中广为人知,但同样提供了对.NET平台的支持。本文将深入探讨如何在C# .NET环境中使用IBatis进行数据库操作,这对于初学者来说是一份...
### Ibatis开发实例详解 #### 一、Ibatis简介与背景 Ibatis 是一个由 Clinton Begin 在 2001 年发起的开源项目,其名称来源于“internet”和“abatis”的组合。最初,该项目的重点是密码软件的开发,但随着时间的...
本篇将详细讲解Ibatis在实现模糊查询、关联查询以及增删改查操作时的关键知识点。 首先,模糊查询是数据库操作中常见的功能,Ibatis通过`<if>`标签或`<where>`标签配合`#{}`占位符来实现。例如,如果你有一个用户...
在实际开发中,这个简单的实例可以帮助初学者理解如何在 Spring 和 iBATIS 之间进行集成,以及如何实现基本的 CRUD 操作。随着项目复杂性的增加,可以进一步探索 Spring 的其他模块,如 Spring Security(安全),...