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

数据库持久层
持久层设计和数据库设计的原则
关于php的数据库持久层设计
在 SCA Module 中使用 Hibernate 框架实现数据持久层
流行持久层框架对数据库操作
Hibernate持久层操作
hibernate 的 log4j.properties 配置文件
Hibernate的映射类型 hibernate mysql映射类型
hibernate的findByExample
持久化对象PO
终于用hibernate把数据持久层写完了 小结下遇到的一些问题
理解PO类在数据层和VO类在逻辑层的区别
hibernate中使用session之一
hibernate映射到mysql数据库时应该注意的几点
在Struts和Hibernate之间搭起桥梁
Hibernate技术文章-基本配置和写法
Hibernate技术
Hibernate详解
Java数据库编程中的技巧
Hibernate 实体关联关系映射----总结
Hibernate中二级缓存的配置和使用

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 498 ::
收藏到网摘: 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”);