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

数据库持久层
数据库持久层:Hibernate中cascade和inverse的用法
数据库持久层:hibernate的配置信息
数据库持久层:谈hibernate的持续性
数据库持久层:小议Hibernate查询及数据检索
数据库持久层:浅谈hibernate中的Session
数据库持久层:小编浅谈hibernate中抓取策略
数据库持久层:iBATIS框架中Serializable可读写缓存及存储类型
数据库持久层:ibatis高级特性
数据库持久层:为持久层编写单元测试
数据库持久层:小编浅谈ibatis基础语义
数据库持久层:Hibernate中与关联有关的问题
数据库持久层:浅谈ORM(对象关系映射)
总结JDBC连接SQLServer的错误Error establishing socket
数据库持久层:iBATIS的OR 映射
数据库持久层:DAO和ODBC的相似之处
数据库持久层:小编浅谈DAO的特色
数据库持久层:小编浅谈XDoclet 与Hibernate 映射
数据库属性hibernate.dialect的设置

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


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