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);

获取dao实例
一旦你得到了DaoManager实例,你就可以根据dao名字,利用DaoManager的getDao方法获取该dao实例了,如:
ProductDao productDao = (ProductDao) daoManager.getDao (ProductDao.class);

往后操作就是在DAO中继承SqlMapDaoTemplate

你可能感兴趣的:(DAO,spring,sql,Hibernate,ibatis)