创建session单例类:
public class SessionUtil {
private static SqlSessionFactory factory;
static{
Reader reader = null;
try {
reader = Resources.getResourceAsReader("config.xml");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
factory = new SqlSessionFactoryBuilder().build(reader,"MySql");
}
public static SqlSession getSession(){
return factory.openSession();
}
}
<!-- 逻辑分页 -->
SqlSession session = SessionUtil.getSession();
<select id="getAllDep" resultType="com.pojos.Dep">
select * from dep
</select>
【
// 从第几个开始,显示几个
// 每页3条,显示第8页
// new RowBounds(3*(8-1),3))
List<Dep> list = session.selectList("stu.getAllDep",null,new RowBounds(6,3));
】
<!-- 物理分页 -->
<select id="getAllDep2" resultType="com.pojos.Dep" parameterType="map">
select * from dep limit #{x},#{y}
</select>
【
// 从第几个开始,显示几个
// 每页3条,显示第2页
// new RowBounds(3*(2-1),3))
SqlSession session = SessionUtil.getSession();
Map map = new HashMap();
map.put("x",3*(2-1));
map.put("y", 3);
List<Dep> list = session.selectList("stu.getAllDep2",map);
】
<!-- 模糊查询实现 -->
<select id="mohu" resultType="com.pojos.Dep">
select * from dep where depname like concat('%',concat(#{depname},'%'))
</select>
【
SqlSession session = SessionUtil.getSession();
List<Dep> list = session.selectList("stu.mohu","要搜索的字");
】
//sql语句块 用可调用:
<sql id="whereDep">
<where>
<if test="depid!=null and depid!=''">
depid=#{depid}
</if>
<if test="depname!=null and depname!=''">
and depname like concat(#{depname},'%')
</if>
</where>
</sql>
<!-- 动态sql之where和if -->
<select id="dt1" resultType="com.pojos.Dep" parameterType="com.pojos.Dep">
select * from dep
<include refid="whereDep"/>
</select>
【
SqlSession session = SessionUtil.getSession();
Dep dep2 = new Dep();
dep2.setDepid(1);
dep2.setDepname("国");
List<Dep> list = session.selectList("stu.dt1",dep2);
】
<!-- 动态sql之修改 -->
<update id="dt2" parameterType="com.pojos.Dep">
update dep
<set>
<if test="depid!=null and depid!=''">
depid=#{depid},
</if>
<if test="depname!=null and depname!=''">
depname=#{depname}
</if>
</set>
<if test="depid!=null and depid!=''">
where depid=#{depid}
</if>
</update>
【
SqlSession session = SessionUtil.getSession();
Dep dep2 = new Dep();
dep2.setDepid(1);
dep2.setDepname("国");
int n = session.update("stu.dt2",dep2);
session.commit();
session.close();
】
<!-- 动态sql之循环 collection="list/arry" -->
<select id="dt3" resultType="com.pojos.Dep">
select * from dep where depid in
<foreach collection="list" item="x" open="(" close=")" separator=",">
#{x}
</foreach>
</select>
【
SqlSession session = SessionUtil.getSession();
List aa = new ArrayList();
aa.add(1);
aa.add(3);
aa.add(4);
aa.add(2);
List<Dep> list = session.selectList("stu.dt3",aa);
】
分享到:
相关推荐
在分页查询方面,Ibatis允许我们在SQL语句中直接添加LIMIT和OFFSET子句,或者使用自定义的分页插件来实现。 1. **SQL映射分页**:在Ibatis的XML配置文件中,我们可以直接编写包含分页条件的SQL语句。例如,对于...
通过这两个参数,我们可以计算出数据库中需要查询的起始位置和结束位置,然后执行相应的SQL语句获取指定范围内的数据。 三、Ibatis分页实现 1. SQL配置 在Ibatis的Mapper XML文件中,我们需要编写一个带有参数的SQL...
标题中的“ibatis分页”指的是在使用iBATIS(一个SQL映射框架)时,如何实现数据库查询结果的分页显示。iBATIS通过XML配置文件或注解方式将Java代码与SQL语句分离,提供了更灵活的数据库操作方式。在处理大量数据时...
2. **动态SQL**:Ibatis.NET支持动态SQL,可以直接在XML映射文件中编写分页查询语句。利用`<if>`标签检查参数是否为空,然后在查询中加入ORDER BY和LIMIT子句。 ```xml SELECT * FROM Users WHERE 1=1 != null...
Ibatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,避免了传统JavaEE开发中大量繁琐的JDBC代码。Ibatis通过Mapper接口和XML配置文件,实现了SQL与Java代码的分离,使得SQL的编写更加灵活,...
Ibatis 是一款轻量级的Java持久层框架,它提供了SQL映射功能,使得开发者能够将SQL语句与Java代码分离,从而实现更灵活的数据访问。在2.3.4这个版本中,Ibatis 提供了数据库无关的分页功能,这是一种在不依赖特定...
CRUD操作在Ibatis中通过SqlMapClient或SqlSession对象来完成,这些对象可以执行预定义的SQL语句,如Insert、Select、Update和Delete。 2. **Mybatis**: Mybatis 是Ibatis的升级版,它在Ibatis的基础上进行了优化...
在`intercept`方法中,我们可以获取到`Executor`对象,进一步获取到`StatementHandler`,然后利用反射修改预编译的SQL语句,加入分页关键字。 3. **配置文件修改**:在Ibatis的配置文件中,需要启用插件并注册我们...
iBatis则是一个持久层框架,它将SQL语句与Java代码分离,提高了代码的可维护性和灵活性。在Spring+iBatis的组合中,iBatis作为数据访问层,负责执行SQL查询,与数据库进行交互。通过配置XML映射文件或注解,iBatis...
公司的大部分项目都开始使用IBatis作为O/R Mapping了,但是在使用的过程中也发现了很多不方便和存在争议的地方,其中一个不方便的地方就是分页,目前的处理方式都是在sqlMap中写针对特定数据库的物理分页Sql语句,对于...
iBatis提供了动态SQL片段的功能,可以将SQL语句拆分成小的、独立的片段,然后根据不同的条件组合这些片段生成最终的SQL语句。这可以提高代码的可重用性和灵活性。 例如,在上面的代码中,我们定义了三个动态SQL片段...
标题"ibatis分页功能"指的就是如何在iBATIS框架中实现数据库查询的分页效果。分页不仅提高了用户体验,还能减少不必要的数据库负载。 描述中提到,分页功能是通过`page.tld`标签实现的。`tld`文件是JSP Tag Library...
iBatis则是一个持久层框架,它提供了SQL语句和Java代码的解耦,使得数据库操作更易于维护。在分页场景下,iBatis的动态SQL功能非常有用。你可以定义一个Mapper接口和XML配置文件,编写SQL查询来获取指定页码的数据,...
在IT行业中,数据库查询的效率和用户体验息息相关,尤其是在数据量庞大的场景下,分页功能显得尤为重要。本知识点将深入探讨如何在Struts2框架中结合iBatis实现基于Freemarker模板的分页功能。 首先,我们需要理解...
而Ibatis是一个轻量级的Java持久层框架,它允许开发者将SQL语句直接写在配置文件中,与ORM(对象关系映射)框架相比,提供了更大的灵活性。 在这个项目中,"SSI整合"指的是开发者将SSI技术应用到项目中,可能是在...
通过上述示例,我们可以了解到如何在 iBatis 中编写复杂的 SQL 查询语句,并且如何通过定义合适的 `ResultMap` 来处理查询结果。这对于实际项目开发具有重要的指导意义,有助于开发者更好地利用 iBatis 提高开发效率...
此外,该工具可能还包含了对复杂的查询条件的支持,比如模糊搜索、分页查询等,这些在生成的SQL中会以动态SQL的形式出现,使得代码更加简洁和易于维护。对于大型项目而言,这种自动化生成的功能能够显著减少编码时间...
- **Statement**: 可以执行静态SQL语句,但不支持参数化查询,每次执行都需要重新编译。 - **PreparedStatement**: 支持参数化查询,通过“?”作为占位符,预编译后可重复使用,提高了性能和安全性。 例如,使用`...
3. **SQL映射文件**:在XML文件中编写SQL语句,包括查询、插入、更新和删除等操作。这些文件应与对应的Mapper接口一起放在资源目录下。 4. **Spring配置Mapper**:在Spring配置文件中,将Mapper接口与对应的XML映射...
在这个实例中,iBatis作为数据访问层,负责与Oracle数据库交互,执行分页查询和插入、更新、删除操作。它通过XML或注解方式定义SQL语句,使得数据库操作更加直观和灵活。 4. **Oracle**:Oracle数据库是企业级的...