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.SqlMapDaoTemplateReader reader = new FileReader(C:/myapp/dao.xml);
DaoManager daoManager = DaoManagerBuilder.buildDaoManager(reader);
获取dao实例
一旦你得到了DaoManager实例,你就可以根据dao名字,利用DaoManager的getDao方法获取该dao实例了,如:
ProductDao productDao = (ProductDao) daoManager.getDao (ProductDao.class);
往后操作就是在DAO中继承SqlMapDaoTemplate