zoukankan      html  css  js  c++  java
  • mybatis SqlSessionFactory工厂模式

    一、工厂方法模式实现sqlsession

    (从别人博客复制的图)

     1.Sqlsession接口

    在sqlsession接口中包含了所有可能执行的sql语句。而Defaultsqlsession是他的实现类,实现了其中的方法。

     1 public interface SqlSession extends Closeable {
     2 
     3   /**
     4    * Retrieve a single row mapped from the statement key
     5    * @param <T> the returned object type
     6    * @param statement
     7    * @return Mapped object
     8    */
     9   <T> T selectOne(String statement);
    10 /**
    11    * Retrieve a list of mapped objects from the statement key and parameter.
    12    * @param <E> the returned list element type
    13    * @param statement Unique identifier matching the statement to use.
    14    * @return List of mapped object
    15    */
    16   <E> List<E> selectList(String statement);

    2.DefaultSqlSession

     1 public class DefaultSqlSession implements SqlSession {
     2 
     3   private Configuration configuration;
     4   private Executor executor;
     5 
     6   private boolean dirty;
     7 
     8  public <E> List<E> selectList(String statement, Object parameter, RowBounds rowBounds) {
     9     try {
    10       MappedStatement ms = configuration.getMappedStatement(statement);
    11       List<E> result = executor.query(ms, wrapCollection(parameter), rowBounds, Executor.NO_RESULT_HANDLER);
    12       return result;
    13     } catch (Exception e) {
    14       throw ExceptionFactory.wrapException("Error querying database.  Cause: " + e, e);
    15     } finally {
    16       ErrorContext.instance().reset();
    17     }
    18   }

    3.SqlSessionFactory接口

    sqlsessionfactory类中有opsession方法,用来创建sqlsession。

    4、DefaultSqlSessionFactory类实现了SqlSessionFactory

  • 相关阅读:
    易语言常用源码
    ci的数据库地址
    格式化输出php数组
    mysql插入表情问题
    线程、进程与协程2
    线程、进程与协程
    if __name=='__main__"的作用
    动态导入模块
    面向对象补充之方法
    getpass模块
  • 原文地址:https://www.cnblogs.com/neu-student/p/7514573.html
Copyright © 2011-2022 走看看