Ibatis DaoTemplate 接口剖析

(1)我们看下DaoTemplate接口的类图:

Ibatis DaoTemplate 接口剖析_第1张图片
template接口.png

DaoTemplate继承Dao接口,并且有五个子类。


(2)我们分析下SqlMapDaoTemplate类中的insert方法实现
(2.1)源代码如下

public Object insert(String id, Object parameterObject) {
    try {
      //获取SqlMapExcecutor接口
      return getSqlMapExecutor().insert(id, parameterObject);
    } catch (SQLException e) {
      throw new DaoException("Failed to insert - id ["
          + id + "], parameterObject [" + parameterObject + "]. Cause: " + e, e);
    }
  }

protected SqlMapExecutor getSqlMapExecutor() {
    SqlMapDaoTransaction trans = (SqlMapDaoTransaction) daoManager.getTransaction(this);
    return trans.getSqlMap();
  }

//DaoTransaction类获取
public DaoTransaction getTransaction(Dao dao) {
    DaoImpl impl = (DaoImpl) daoImplMap.get(dao);
    return impl.getDaoContext().getTransaction();
  }

你可能感兴趣的:(Ibatis DaoTemplate 接口剖析)