Mybatis 之 ResultSetHandler

在PreparedStatementHandler中的query()方法中,用ResultSetHandler来完成结果集的映射。

public <E> List<E> query(Statement statement, ResultHandler resultHandler) throws SQLException {  
   PreparedStatement ps = (PreparedStatement) statement;  
   ps.execute();  
   return resultSetHandler.<E> handleResultSets(ps);  
 }  
ResultSetHandler负责处理两件事:
(1)处理Statement执行后产生的结果集,生成结果列表
(2)处理存储过程执行后的输出参数
ResultSetHandler是一个接口,提供了两个函数分别用来处理普通操作和存储过程的结果:
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package  org.apache.ibatis.executor.resultset;
 
import  java.sql.CallableStatement;
import  java.sql.SQLException;
import  java.sql.Statement;
import  java.util.List;
 
/**
  * @author Clinton Begin
  */
public  interface  ResultSetHandler {
 
   <E> List<E> handleResultSets(Statement stmt)  throws  SQLException; //对普通查询到的结果转换
 
   void  handleOutputParameters(CallableStatement cs)  throws  SQLException; //调用存储过程返回结果,将结果值放在参数中
 
}

ResultSetHandler的具体实现类是DefaultResultSetHandler,其实现的步骤就是将Statement执行后的结果集,按照Mapper文件中配置的ResultType或ResultMap来封装成对应的对象,最后将封装的对象返回。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值