CSDN博客

img JasonSeaver

iBATIS step by step (1)

发表于2004/7/16 13:35:00  1236人阅读

今天抽空写了step by step的 step 1,首先用了一个最简单的例子来说明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的强大与灵活了.
  点
这里下载全部程序.


 

0 0

相关博文

我的热门文章

img
取 消
img