当前位置: 首页 > 图文教程 > Java技术 > 数据库持久层 > 数据库持久层:小编浅谈ibatis基础语义

数据库持久层
hibernate的11大优势
Hibernate的级联删除
别让Hibernate偷走了你的标识符
数据持久层三种持久化方法
Hibernate使用总结
hibernate要点
Hibernate基础
优化Hibernate性能的几点建议
Hibernate优化方案
别让Hibernate偷走了您的身份(一)
别让Hibernate偷走了您的身份(二)
Hibernate的发展之路
Hibernate包作用详解
EJB 3.0是Hibernate的克隆吗?
分析Hibernate的事务处理机制
使用Hibernate处理数据
Hibernate 和 iBATIS
数据库持久层:如何学习Hibernate
数据库持久层:用hbm2java生成Hibernate类
数据库持久层:Hibernate延时加载和机制理解

数据库持久层:小编浅谈ibatis基础语义


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 500 ::
收藏到网摘: n/a

XmlSqlMapClientBuilder

XmlSqlMapClientBuilderibatis 2.0之后版本新引入的组件,用以替代1.x

版本中的XmlSqlMapBuilder。其作用是根据配置文件创建SqlMapClient实例。

SqlMapClient

SqlMapClientibatis的核心组件,提供数据操作的基础平台。SqlMapClient

可通过XmlSqlMapClientBuilder创建:

String resource ="com/ibatis/sample/SqlMapConfig.xml";

Reader reader;

reader = Resources.getResourceAsReader(resource);

XmlSqlMapClientBuilder xmlBuilder =

new XmlSqlMapClientBuilder();

SqlMapClient sqlMap = xmlBuilder.buildSqlMap(reader);

"com/ibatis/sample/SqlMapConfig.xml"指明了配置文件在CLASSPATH

中的相对路径。XmlSqlMapClientBuilder通过接受一个Reader类型的配置文

件句柄,根据配置参数,创建SqlMapClient实例。

SqlMapClient提供了众多数据操作方法,下面是一些常用方法的示例,具体说明

文档请参见ibatis java doc,或者ibatis官方开发手册。

SqlMapClient基本操作示例

以下示例摘自ibatis官方开发手册,笔者对其进行了重新排版以获得更好的阅读效果。

1: 数据写入操作(insert, update, delete):

sqlMap.startTransaction();

Product product = new Product();

product.setId (1);

product.setDescription (“Shih Tzu”);

int rows = sqlMap.insert (“insertProduct”, product);

sqlMap.commitTransaction();

2: 数据查询(select)

sqlMap.startTransaction();

Integer key = new Integer (1);

Product product = (Product)sqlMap.queryForObject

(“getProduct”, key);

sqlMap.commitTransaction();

3: 在指定对象中存放查询结果(select)

sqlMap.startTransaction();

Customer customer = new Customer();

sqlMap.queryForObject(“getCust”, parameterObject, customer);

sqlMap.queryForObject(“getAddr”, parameterObject, customer);

sqlMap.commitTransaction();

4: 执行批量查询(select)

sqlMap.startTransaction();

List list = sqlMap.queryForList (“getProductList”, null);

sqlMap.commitTransaction();

5: 关于AutoCommit

//没有预先执行startTransaction时,默认为auto_commit模式

int rows = sqlMap.insert (“insertProduct”, product);

6:查询指定范围内的数据

sqlMap.startTransaction();

List list = sqlMap.queryForList (“getProductList”, null, 0, 40);

sqlMap.commitTransaction();

7: 结合RowHandler进行查询(select)

public class MyRowHandler implements RowHandler {

public void handleRow (Object object, List list) throws

SQLException {

Product product = (Product) object;

product.setQuantity (10000);

sqlMap.update (“updateProduct”, product);

}

}

sqlMap.startTransaction();

RowHandler rowHandler = new MyRowHandler();

List list = sqlMap.queryForList (“getProductList”, null,

rowHandler);

sqlMap.commitTransaction();

8: 分页查询(select)

PaginatedList list =

sqlMap.queryForPaginatedList (“getProductList”, null, 10);

list.nextPage();

list.previousPage();

9: 基于Map的批量查询(select)

sqlMap.startTransaction();

Map map = sqlMap.queryForMap (“getProductList”, null,

productCode”);

sqlMap.commitTransaction();

Product p = (Product) map.get(“EST-93”);