ibatis 中 重要的sqlMapClient对象的作用

iBATIS中非常重要的对象:

sqlMapClient对象

这个对象是iBatis操作数据库的接口(执行CRUD等操作),它也可以执行事务管理等操作。这个类是我们使用iBATIS的最主要的类。它是线程安全的。通常,将它定义为单例。(与hibernate中sessionFactory的定义类似)

import java.io.Reader;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

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

定义成单例的一种写法

相关推荐