ibatis基础语义

 

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”);

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值