ibatis中 SqlMapClientDaoSupport,SqlMapClientTemplate ,SqlMapDaoTemplate差异
ibatis中 SqlMapClientDaoSupport,SqlMapClientTemplate ,SqlMapDaoTemplate区别
1.SqlMapClientDaoSupport 基类为我们预先初始化了一个 SqlMapClientTemplate 实例。
在使用过程中,直接调用就行,getSqlMapClientTemplate().queryForList,主要应用在与spring的集成中
2.SqlMapClientTemplate ,SqlMapDaoTemplate主要用ibatis中(非框架集成)
SqlMapClientTemplate用于SqlMapClient来获得,如下面例子:
public class IbatisSQLMapConfig {
private static final SqlMapClient sqlMap;
//在静态区块中初试化返回
static {
try {
//声明配置文件的名称(映射文件被定义在其中)
String resource = "sql_map_config.xml";
//利用工具类Resources来读取到配置文件
Reader reader = Resources.getResourceAsReader(resource);
//创建SqlMapClient接口的变量实例
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(
"Error initializing MyAppSqlConfig class. Cause: " + e);
}
}
public static SqlMapClient getSqlMapInstance() {
//提供静态方法返回静态区块中得到的SqlMapClient
return sqlMap;
}
}
对于这个辅助类,之前的解释已经很清楚了,从代码的注释总也可以看到它的工作方式。其实也可以按照介绍Hibernate框架时所用的方式将这个类改变成单例类。
一旦创建好了SqlMapClient那么对数据库的操作就十分简单了。
SqlMapClient提供了如下的一些功能:
显式的调用事务。
执行对数据库的常规操作。
批量处理非查询的SQL语句。
3.SqlMapDaoTemplate
Reader reader = new FileReader(C:/myapp/dao.xml);
DaoManager daoManager = DaoManagerBuilder.buildDaoManager(reader);
DaoManager daoManager = DaoManagerBuilder.buildDaoManager(reader);
获取dao实例
一旦你得到了DaoManager实例,你就可以根据dao名字,利用DaoManager的getDao方法获取该dao实例了,如:
ProductDao productDao = (ProductDao) daoManager.getDao (ProductDao.class);
往后操作就是在DAO中继承SqlMapDaoTemplate