以下是创建一个SqlMapClient的示例,IBatis官方推荐的做法是使用一个辅助类来提供SqlMapClient的实例,见示例12.3。
例12.3:IbatisSQLMapConfig.java
package struts.sample.cap11.sample2.ibatisConfig;
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;
}
}
对于这个辅助类,之前的解释已经很清楚了,从代码的注释总也可以看到它的工作方式。其实也可以按照介绍Hibernate框架时所用的方式将这个类改变成单例类。
一旦创建好了SqlMapClient那么对数据库的操作就十分简单了。
SqlMapClient提供了如下的一些功能:
q 显式的调用事务。
q 执行对数据库的常规操作。
q 批量处理非查询的SQL语句。