ibatis 应用流程

ibatis使用起来非常简单,没有hibernate那么复杂,具体原理如下:

1,通过DaoManagerBuilder.buildDaoManager(reader, props);加载sql-map-config.xml文件,在加载sql-map-config.xml文件的时候,会在sql-map-config.xml文件中初始化数据源连接和sql配置文件,样本如下:

xml 代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2.   
  3. <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"   
  4.     "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">  
  5. <sqlMapConfig>  
  6.   <properties resource="properties/database.properties"/>  
  7.   <transactionManager type="JDBC">  
  8.     <dataSource type="SIMPLE">  
  9.       <property value="${driver}" name="JDBC.Driver"/>  
  10.       <property value="${url}" name="JDBC.ConnectionURL"/>  
  11.       <property value="${username}" name="JDBC.Username"/>  
  12.       <property value="${password}" name="JDBC.Password"/>  
  13.     </dataSource>  
  14.   </transactionManager>  
  15.   <sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Account.xml"/>  
  16. </sqlMapConfig>  

其中的Account.xml文件就是sql配置文件,sql配置文件的样本文件如下:

xml 代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"   
  3.     "http://ibatis.apache.org/dtd/sql-map-2.dtd">  
  4. <sqlMap namespace="Account">  
  5.   <typeAlias alias="account" type="com.ibatis.jpetstore.domain.Account"/>  
  6.   <select id="getAccountByUsername" resultClass="account" parameterClass="string">  
  7.     SELECT   
  8.           SIGNON.USERNAME,   
  9.           ACCOUNT.EMAIL,   
  10.           ACCOUNT.FIRSTNAME,   
  11.           ACCOUNT.LASTNAME,   
  12.           ACCOUNT.STATUS,   
  13.           ACCOUNT.ADDR1 AS address1,   
  14.           ACCOUNT.ADDR2 AS address2,   
  15.           ACCOUNT.CITY,   
  16.           ACCOUNT.STATE,   
  17.           ACCOUNT.ZIP,   
  18.           ACCOUNT.COUNTRY,   
  19.           ACCOUNT.PHONE,   
  20.           PROFILE.LANGPREF AS languagePreference,   
  21.           PROFILE.FAVCATEGORY AS favouriteCategoryId,   
  22.           PROFILE.MYLISTOPT AS listOption,   
  23.           PROFILE.BANNEROPT AS bannerOption,   
  24.           BANNERDATA.BANNERNAME   
  25.     FROM ACCOUNT, PROFILE, SIGNON, BANNERDATA   
  26.     WHERE ACCOUNT.USERID = #username#   
  27.       AND SIGNON.USERNAME = ACCOUNT.USERID   
  28.       AND PROFILE.USERID = ACCOUNT.USERID   
  29.       AND PROFILE.FAVCATEGORY = BANNERDATA.FAVCATEGORY   
  30.   </select>  
  31. </sqlMap>  

sql-map-config.xml和sql语句配置文件配置好之后,就可以进行dao操作了

2,dao操作,可以通过继承SqlMapDaoTemplate类,执行sql语句,在执行sql语句的时候,首先获取通过DaoManagerBuilder.buildDaoManager(reader, props);初始化加载的daoManager对象,功过daoManager对象可以得到一个dao类,然后就可以执行这个dao类里面的dao方法了,比如

  public BusinessInfo getBusinessInfo(String id) {
        // XXX Auto-generated method stub
        return (BusinessInfo) queryForObject("getBusinessInfo", id);

    }

ibatis在你调用dao方法的时候,根据你传入的sql语句id,到sql语句配置文件中查找相应的sql语句,然后执行这个sql语句,并返回执行结果.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值