SqlMapClient,是iBatis中的重要接口,这个接口涉及到对SQL映射的执行和批处理。
现在,就先了解它的对query开头方法的定义。
首先是 queryForList 方法:
- //指定SQL的ID,执行的结果返回List
- queryForList(java.lang.String id) ;
- //指定SQL的ID,并指定返回的行数
- queryForList(java.lang.String id, int skip, int max) ;
- //指定SQL的ID,并指定传入参数
- queryForList(java.lang.String id, java.lang.Object parameterObject) ;
- //指定SQL的ID,并指定传入参数,再指定返回的行数
- queryForList(java.lang.String id, java.lang.Object parameterObject, int skip, int max) ;
//指定SQL的ID,执行的结果返回List queryForList(java.lang.String id) ; //指定SQL的ID,并指定返回的行数 queryForList(java.lang.String id, int skip, int max) ; //指定SQL的ID,并指定传入参数 queryForList(java.lang.String id, java.lang.Object parameterObject) ; //指定SQL的ID,并指定传入参数,再指定返回的行数 queryForList(java.lang.String id, java.lang.Object parameterObject, int skip, int max) ;
接着是 queryForMap 方法:
- //执行SQL的ID,并把结果中的某一字段作为map的key
- queryForMap(java.lang.String id, java.lang.Object parameterObject, java.lang.String keyProp) ;
- //同上,并且map中的value是指定的字段,而不是整个返回对象
- queryForMap(java.lang.String id, java.lang.Object parameterObject, java.lang.String keyProp, java.lang.String valueProp) ;
//执行SQL的ID,并把结果中的某一字段作为map的key queryForMap(java.lang.String id, java.lang.Object parameterObject, java.lang.String keyProp) ; //同上,并且map中的value是指定的字段,而不是整个返回对象 queryForMap(java.lang.String id, java.lang.Object parameterObject, java.lang.String keyProp, java.lang.String valueProp) ;
再是queryForObject 方法:
- //执行指定的SQL ID,并返回一个对象,如果查询出的函数过多,会有异常SQLException抛出
- queryForObject(java.lang.String id) ;
- //同上,并加上了传递的参数
- queryForObject(java.lang.String id, java.lang.Object parameterObject) ;
- //同上,并执行的返回对象的引用
- queryForObject(java.lang.String id, java.lang.Object parameterObject, java.lang.Object resultObject) ;
//执行指定的SQL ID,并返回一个对象,如果查询出的函数过多,会有异常SQLException抛出 queryForObject(java.lang.String id) ; //同上,并加上了传递的参数 queryForObject(java.lang.String id, java.lang.Object parameterObject) ; //同上,并执行的返回对象的引用 queryForObject(java.lang.String id, java.lang.Object parameterObject, java.lang.Object resultObject) ;
最后,是 queryForPaginatedList 方法,也就是针对分页的方法: 但是这个方法已经Deprecated 了, 也就是不赞成使用这个方法了
- //这两个方法返回的是 PaginatedList 接口。
- //指定查询的SQL ID,并且规定了每页的数量
- queryForPaginatedList(java.lang.String id, int pageSize) ;
- //同上,并且加上了指定的传参
- queryForPaginatedList(java.lang.String id, java.lang.Object parameterObject, int pageSize) ;
//这两个方法返回的是 PaginatedList 接口。 //指定查询的SQL ID,并且规定了每页的数量 queryForPaginatedList(java.lang.String id, int pageSize) ; //同上,并且加上了指定的传参 queryForPaginatedList(java.lang.String id, java.lang.Object parameterObject, int pageSize) ;
最后一个,那就是 queryWithRowHandler,对查询的每一个结果进行处理:
- //指定SQL id ,指定传参,并指定处理器
- queryWithRowHandler(java.lang.String id, java.lang.Object parameterObject, RowHandler rowHandler) ;
- //指定SQL id,指定处理器
- queryWithRowHandler(java.lang.String id, RowHandler rowHandler) ;
//指定SQL id ,指定传参,并指定处理器 queryWithRowHandler(java.lang.String id, java.lang.Object parameterObject, RowHandler rowHandler) ; //指定SQL id,指定处理器 queryWithRowHandler(java.lang.String id, RowHandler rowHandler) ;
现在了解一下这个 RowHandler 这个接口。
此接口只有一个定义方法:handlerRow(java.lang.Object valueObject)
所以,通常我们都实现这个接口,因为对每一个处理都是我们自己的需求。
其中的传入属性就是每一行的对象。
上次我学了iBatis的重要接口 SqlMapClient 的查询函数 ,刚刚学习了一下非查询的方法,现在总结一下。
首先,是插入数据:insert
- //执行指定的SQL ID
- insert(java.lang.String id) ;
- //执行指定的SQL ID,并且指定传参
- insert(java.lang.String id, java.lang.Object parameterObject) ;
//执行指定的SQL ID insert(java.lang.String id) ; //执行指定的SQL ID,并且指定传参 insert(java.lang.String id, java.lang.Object parameterObject) ;
接着是更新书序:update
- //执行指定的 SQL ID
- update(java.lang.String id) ;
- //执行指定的 SQL ID,并且指定传参
- update(java.lang.String id, java.lang.Object parameterObject) ;
//执行指定的 SQL ID update(java.lang.String id) ; //执行指定的 SQL ID,并且指定传参 update(java.lang.String id, java.lang.Object parameterObject) ;
再是删除数据: delete
- // 执行指定的SQL ID
- delete(java.lang.String id) ;
- //执行指定的 SQL ID,并且指定传参
- delete(java.lang.String id, java.lang.Object parameterObject) ;
// 执行指定的SQL ID delete(java.lang.String id) ; //执行指定的 SQL ID,并且指定传参 delete(java.lang.String id, java.lang.Object parameterObject) ;
这样,执行 SQL 的函数就差不多了,接下来去具体的学习 SQL MAP 配置文件中具体各个属性。