Ibatis dao 组件下面的client包:com.ibatis.dao.client下面主要是提供给外部调用的接口比如让Spring进行集成,我们看下下面的类和接口
client.png(2)我们看下spring种的集成:
spring-dao.png我们看到Spring中的SqlMapClientDaoSupport中引用了SqlMapClientTemplate用来操作数据库
(3)我们分析具体的接口的功能
//3.1DaoManager
DaoManager通过
DaoManagerBuilder.buildDaoManager(reader)解析获取到DaoManager获取Dao,
PersonDao personDao = daoManager.getDao(PersonDao.class)
//3.2DaoTransaction
//事务相关的接口
public interface DaoTransaction {
}
daotransaction.png
是ibatis中事务的接口。
3.3 Dao接口和DaoTemplate类
public abstract class DaoTemplate implements Dao {
protected DaoManager daoManager;
public DaoTemplate(DaoManager daoManager) {
this.daoManager = daoManager;
}
}
daotemplate.png
SqlMapDaoTemplate类实现了DaoTemplate接口,用来操作数据库,我们看下它里面的insert方法
public Object insert(String id, Object parameterObject) {
try {
return getSqlMapExecutor().insert(id, parameterObject);
} catch (SQLException e) {
throw new DaoException("Failed to insert - id ["
+ id + "], parameterObject [" + parameterObject + "]. Cause: " + e, e);
}
}
上面代码可以看出SqlMapDaoTemplate是操作数据库的真正的类。
网友评论