SqlMapClientTemplate的使用(转)
Apache iBatis(现已迁至Google Code下发展,更名为MyBatis)是当前IT项目中使用很广泛的一个半自动ORM框架,区别于Hibernate之类的全自动框架,iBatis对数据库的操作拥有更加灵活的控制,对于那些经常需要调用本地数据库函数自定义SQL语句,或是喜欢自己优化SQL执行效率的开发者来说,iBatis是一个非常不错的选择。而得到广泛应用的开源企业架构SpringFramework,也很好的将其进行了集成,使得iBatis在 SpringFramework中的使用更加便利、快捷。开发者所要做的就是继承SpringFramework中提供的 SqlMapClientDaoSupport类即可。下面,我将自己的使用经验与大家分享一下:
1、SqlMapClientFactoryBean 的装配
SqlMapClientFactoryBean是SqlMapClientTemplate使用的基础,如果在
SpringFramework应用中没有装配SqlMapClientFactoryBean,那么SqlMapClientTemplate将不可用,报空指针错误。
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="/WEB-INF/sqlmap-config.xml"/> <!-- iBatis sqlmap config 文件位置 -->
<property name="dataSource" ref="dataSource"/> <!-- 在SpringFramework配置文件中使用的数据源 -->
<property name="lobHandler" ref="oracleLobHandler"/> <!-- 如果需要读写Lob字段,需要注入在SpringFramework配置文件中配置好的Handler,这里是Oracle的数据库 -->
</bean>
2、继承使用SqlMapClientDaoSupport类
声明Java类:
......
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
......
public class ReportDAOImpl extends SqlMapClientDaoSupport {
......
}
SpringFramework配置文件中装配Java类:
<bean id="reportDao" class="com.test.dao.ReportDAOImpl">
<property name="sqlMapClient" ref="sqlMapClient"/> <!-- 装配SqlMapClientFactoryBean -->
</bean>
3、使用SqlMapClientTemplate查询
Java代码:
当执行没有参数的查询时:
List result = getSqlMapClientTemplate().queryForList("TestSpace.qryTest");
"TestSpace"为iBatis SqlMap文件的命名空间;"qryTest"为iBatis SqlMap的查询方法id
当按照主键获取某条记录信息时:
Long id = new Long("2");
Object resultObj = getSqlMapClientTemplate().queryForObject("TestSpace.getTest", id);
当按照某些条件查询时:
ObjectA objA = new ObjectA();
objA.setParam1("test1");
objA.setParam2("test2");
......
List result = getSqlMapClientTemplate().queryForList("TestSpace.qryTestByParam", objA);
如果需要取4~40条数据:
List result = getSqlMapClientTemplate().queryForList("TestSpace.qryTestByParam", objA, 4, 40);
也可以返回Map
Map result = getSqlMapClientTemplate().queryForMap("TestSpace.qryTestByParam", objA, "MapKey");
4、使用SqlMapClientTemplate添加数据
Java代码:
ObjectA objA = new ObjectA();
objA.setParam1("test1");
objA.setParam2("test2");
......
getSqlMapClientTemplate().insert("TestSpace.insertTest", objA);
5、使用SqlMapClientTemplate更新数据
Java代码:
ObjectA objA = new ObjectA();
objA.setParam1("test1");
objA.setParam2("test2");
......
getSqlMapClientTemplate().update("TestSpace.updateTest", objA);
更新前20条记录:
getSqlMapClientTemplate().update("TestSpace.updateTest", objA, 20);
6、使用SqlMapClientTemplate删除数据
Java代码:
Long id = new Long("2");
getSqlMapClientTemplate().delete("TestSpace.deleteTest", id);
SqlMapClientTemplate是SqlMapClient的封装类.
SqlMapClient中包含着session的管理.
SqlMapClientTemplate用于session的封装,以及异常的捕捉.
所以按照以上的推断来说.应该尽量使用SqlMapClientTemplate.
保证session以及Exception的正常以及统一.
分享到:
相关推荐
spring mvc mybatis 整合源码,带数据库脚本,带详细注释,适合初、中、高各级开发人员使用
spring mvc mybatis velocity 示范
Spring MVC MyBatis开发从入门到项目实战
Spring mvc mybatis plus 实现AOP 切面日志系统,带有数据库。可以自行拓展
spring mvc mybatis项目源码
Java EE企业级应用开发教程(Spring Spring MVC MyBatis)(黑马程序员编著)
maven spring spring mvc mybatis 整合
详细的代码案例,包含数据库的执行文件。 详细的增删改查案例
Spring mvc mybatis 企业应用实践
Spring Spring MVC Mybatis三大框架的整合demo,里面包含写好的示例程序。可以作为所有SSM爱好者开发的基础模板,拿来即用。内附解释文档。由于涉及隐私问题,代码中将POM删除,需要自己写POM引入jar包。
spring mvc mybatis 注解版 可直接使用
【源码】mysql版本_spring3.0 系统模块 1. 组织管理:角色管理,分角色组和成员,有组权限和成员权限。 2. 系统用户:对各个基本的组会员增删改查,单发、群发邮件短信,导入导出excel表格,批量删除 3. 会员管理:...
spring mvc Mybatis开发框架模板,解压即可使用
《Spring MVC+MyBatis开发从入门到项目实战》分为4篇。第1篇是Java开发环境的搭建,包括JDK的下载与安装、环境变量的配置、MyEclipse的下载与基本配置。第2篇是MyBatis技术入门,包括剖析JDBC的弊端、MyBatis的背景...
Spring MVC MYBatis企业应用实战,详细描述spring mvc原理及注解,怎么与mybatis整合,构建企业级web实战
Spring Boot学习 Spring Boot Spring MVC MyBatis MySQL Spring
spring mvc mybatis(动态代理) maven mysql 整合框架
公益 顺风车 网站 spring MVC mybatis mysql 公益 顺风车 网站 spring MVC mybatis mysql
spring mvc mybatis maven整合框架支持事物
含有《spring+mybatis企业应用实战》pdf版和源码