zoukankan      html  css  js  c++  java
  • 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是一个接口,提供了两个函数分别用来处理普通操作和存储过程的结果:
     
    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来封装成对应的对象,最后将封装的对象返回。 

  • 相关阅读:
    单页面应用(SPA)如何实现---流程细解
    Java基础之面向对象
    Java的基础知识
    java是什么?初始java
    AuthenticationManager的认证流程
    核心组件之UserDetailService的详解
    Auth模块
    python基础
    算法与数据结构学习目录
    Django----------视图层
  • 原文地址:https://www.cnblogs.com/zsg88/p/7572021.html
Copyright © 2011-2022 走看看