http://lavasoft.blog.51cto.com/62575/83896 ---- iBatis2学习笔记:基本原理和配置
这篇文章比较好上手,例子我已经调试通过,用的是
mysql-connector-java-5.1.8-bin.jar和
ibatis-2.3.4.726.jar。当然,sqlMapClient最好封装成各表对应的DAO再进行调用。文章也提到官方的例子“iBatis实现的JPetStore-5.0.zip”,我看了,还是用的2.2之前的库,DAO库是standalone的。
除了在
sqlMapConfig.xml中指定properties来初始化jdbc的连接参数,然后再调用sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader); 之外,如何更灵活的在程序中初始化这些参数呢?
用SqlMapClientBuilder.buildSqlMapClient(reader, props)函数,例
Properties props = new Properties();
props.put("jdbc.driver", vendorDB);
props.put("jdbc.username", jdbcUser);
props.put("jdbc.password", jdbcPassword);
props.put("jdbc.url", getURL(dbName));
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader, props);
另外,使用中发现对于数据库中的timestamp类型,java对应的bean中要用Date进行对应,如果用Calendar会异常。
关于ibatis分页:
ibatis内置的分页方法是queryForPaginatedList(),使用比较方便,不过该函数在2.3中标注为deprecated。因为它实际上是将所有数据读入内存后再逻辑实现的分页,数据量大时,效率不好。
这里有个贴,介绍如何外面包一下,用三层sql语句实现ibatis分页:http://blog.csdn.net/quxiling/archive/2008/03/28/2225173.aspx
不知道ibatis 3.0对分页的支持如何?