(1)我们看下DaoTemplate接口的类图:
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();
}










网友评论