今天抽空写了step by step的 step 1,首先用了一个最简单的例子来说明iBATIS的灵活与方便.
当然,我们还需要一些关于数据库的配置,比较简单:
基本上,我们需要做的就这些了,做好这些工作之后,我们就可以写一个方法来进行测试了,这时候,你可以试试改变一下配置文件里的sql语句,再运行一下,可以轻松体验一下iBATIS的强大与灵活了.
点这里下载全部程序.
一些说明,
1.例子使用eclipse进行开发,所以附件的包里有eclipse的.classpath和.project文件,为了简单清晰,我尽量简化了相关的配置
2.附件带有所有需要的jar并在win2k+jdk1.4.2和fedora core 1 + jdk1.4.2上测试通过
下面正式开始....
首先建立一个简单的bean:Account
private int id; private String firstName; private String lastName; private String emailAddress; ... getters & setters |
然后写一个xml文件,就是sql mapping的配置了,比如叫Account.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sql-map PUBLIC "-//iBATIS.com//DTD SQL Map 1.0//EN" "http://www.ibatis.com/dtd/sql-map.dtd";> <sql-map name="Account"> <!--随便写了几个例子--> <mapped-statement name="getAccountByName" result-class="man.argan.ibatis.domain.Account"> select ACC_ID as id, ACC_FIRST_NAME as firstName, ACC_LAST_NAME as lastName, ACC_EMAIL as emailAddress from ACCOUNT where ACC_FIRST_NAME like #value# OR ACC_LAST_NAME like #value# </mapped-statement> .... </sql-map> |
这样我们需要的和业务相关的 配置就这么多了,在程序里面,我们就可以进行使用了
Account account = null; account = new Account(); account = (Account) sqlMap.executeQueryForObject( "getAccountIdAndName", new Integer(1), account); println("getAccountIdAndName/t-->Account: " + account); account = (Account) sqlMap.executeQueryForObject("getAccountEmail", new Integer(4)); println("getAccountEmail/t-->Account: " + account); List list = sqlMap.executeQueryForList("getAccountByName", "%阿%"); println("getAccountByName/t-->list: " + list); |
当然,我们还需要一些关于数据库的配置,比较简单:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sql-map-config PUBLIC "-//iBATIS.com//DTD SQL Map Config 1.0//EN" "http://www.ibatis.com/dtd/sql-map-config.dtd";> <sql-map-config> <properties resource="man/argan/ibatis/sqlmap/maps/SqlMapConfig.properties" /> <datasource name="basic" default = "true" factory-class="com.ibatis.db.sqlmap.datasource.SimpleDataSourceFactory"> <property name="JDBC.Driver" value="${driver}"/> <property name="JDBC.ConnectionURL" value="${url}"/> <property name="JDBC.Username" value="${username}"/> <property name="JDBC.Password" value="${password}"/> </datasource> <sql-map resource="man/argan/ibatis/sqlmap/maps/Account.xml" /> </sql-map-config> |
这个配置文件其实是相当于sql map的一个总控配置,我们读取配置的入口就在这里了,iBATIS提供了非常方便的读取方式:
public class SqlMapConfig { protected static final SqlMap sqlMap; static { try { // -- 取得配置信息 Reader reader = Resources .getResourceAsReader("man/argan/ibatis/sqlmap/maps/SqlMapConfig.xml"); // 从配置信息里构造出SQL Map sqlMap = XmlSqlMapBuilder.buildSqlMap(reader); } catch (Exception e) { // 如果读取配置信息出错,无法处理,只好抛出 throw new NestedRuntimeException("初始化sql map config 错误:" + e, e); } } public static SqlMap getSqlMap() { return sqlMap; } } |
基本上,我们需要做的就这些了,做好这些工作之后,我们就可以写一个方法来进行测试了,这时候,你可以试试改变一下配置文件里的sql语句,再运行一下,可以轻松体验一下iBATIS的强大与灵活了.
点这里下载全部程序.