iBATIS SQLMap配置Demo浅析

来源:互联网 发布:自动化工业控制软件 编辑:程序博客网 时间:2024/05/19 17:03
  • iBATIS SQLMap配置Demo浅析

  • 转载自:http://developer.51cto.com/art/200907/138627.htm
    iBATIS SQLMap配置Demo向你介绍iBATIS SQLMap的具体配置以及实例。

     

    在Spring的jpestore中,数据持久层用到了iBATIS SQLMaps,这里写一个iBATIS的简单Demo,作为iBATIS的学习笔记。

    iBATIS的SQLMap配置文件是XML形式,一般叫SqlMapConfig.xml,如下:

    Xml代码

    1. ﹤?xml version="1.0" encoding="UTF-8"?﹥       
    2. ﹤!DOCTYPE sqlMapConfig  PUBLIC "-//iBATIS.com//DTD SQL Map 
    3. Config 2.0/" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"﹥    
    4.     
    5. ﹤sqlMapConfig﹥    
    6.     ﹤!--settings配置是可选的,用来控制sqlMapping的详细配置,
    7. 主要是事务处理。参数具体含义请参考ibatis开发指南--﹥    
    8.     ﹤settings cacheModelsEnabled="true" enhancementEnabled="true"    
    9.         lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"    
    10.         maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /﹥    
    11.     ﹤!--使用SimpleDataSource配置数据源,DataSource的iBATIS实现:
    12. SimpleDataSource类,Jakarta DBCP(Commons),
    13. 和可通过JNDI上下文查找的DataSource(即应用服务器中的DataSource)--﹥    
    14.     ﹤transactionManager type="JDBC"﹥    
    15.     
    16.         ﹤dataSource type="SIMPLE"﹥    
    17.             ﹤property name="JDBC.Driver"      
    18. value="com.mysql.jdbc.Driver" /﹥    
    19.             ﹤property name="JDBC.ConnectionURL"      
    20. value="jdbc:mysql://127.0.0.1:3306/jpetstore?" /﹥    
    21.             ﹤property name="JDBC.Username" value="root" /﹥    
    22.             ﹤property name="JDBC.Password" value="" /﹥    
    23.             ﹤property name="Pool.MaximumActiveConnections" value="10" /﹥    
    24.             ﹤property name="Pool.MaximumIdleConnections" value="5" /﹥    
    25.             ﹤property name="Pool.MaximumCheckoutTime" value="120000" /﹥    
    26.             ﹤property name="Pool.TimeToWait" value="500" /﹥    
    27.             ﹤property name="Pool.PingQuery" value="select 1 from ACCOUNT" /﹥    
    28.             ﹤property name="Pool.PingEnabled" value="false" /﹥    
    29.             ﹤property name="Pool.PingConnectionsOlderThan" value="1" /﹥    
    30.             ﹤property name="Pool.PingConnectionsNotUsedFor" value="1" /﹥    
    31.         ﹤/dataSource﹥    
    32.     ﹤/transactionManager﹥    
    33.     ﹤!--引入所有的SQL Map配置文件,这里的路径是classpath的相对路径,
    34. 例如下面的配置说明引入Account.xml,位置在com/quqworld/test/ibatis包内--﹥    
    35.     ﹤sqlMap resource="com/quqworld/test/ibatis/Account.xml" /﹥    
    36.          
    37. ﹤/sqlMapConfig﹥      

    接下来是iBATIS SQLMap映射文件Account.xml:

    Xml代码

    1. ﹤?xml version="1.0" encoding="UTF-8"?﹥    
    2. ﹤!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"      
    3.     "http://www.ibatis.com/dtd/sql-map-2.dtd"﹥    
    4.     
    5. ﹤sqlMap namespace="Account"﹥    
    6.     ﹤!--在SQL Map框架中,Result Map是极其重要的组件。
    7. 在执行查询Mapped Statement时,resultMap负责将结果集的列值映射成Java Bean的属性值。--﹥    
    8.     ﹤resultMap id="result"    
    9.         class="org.springframework.samples.jpetstore.domain.Account"﹥    
    10.         ﹤result property="username" column="userid" columnIndex="1" /﹥    
    11.         ﹤result property="email" column="email" columnIndex="2" /﹥    
    12.         ﹤result property="firstName" column="firstname" columnIndex="3" /﹥    
    13.         ﹤result property="lastName" column="lastname" columnIndex="4" /﹥    
    14.         ﹤result property="status" column="status" columnIndex="5" /﹥    
    15.         ﹤result property="address1" column="addr1" columnIndex="6" /﹥    
    16.         ﹤result property="address2" column="addr2" columnIndex="7" /﹥    
    17.         ﹤result property="city" column="city" columnIndex="8" /﹥    
    18.         ﹤result property="state" column="state" columnIndex="9" /﹥    
    19.         ﹤result property="zip" column="zip" columnIndex="10" /﹥    
    20.         ﹤result property="country" column="country" columnIndex="11" /﹥    
    21.         ﹤result property="phone" column="phone" columnIndex="12" /﹥﹤/resultMap﹥    
    22.     
    23.     ﹤select id="getAllAccountByUserid" resultMap="result"﹥    
    24.         select     
    25.             account.userid,     
    26.             account.email,     
    27.             account.firstname,     
    28.             account.lastname,     
    29.             account.status,     
    30.             account.addr1,     
    31.             account.addr2,     
    32.             account.city,     
    33.             account.state,     
    34.             account.zip,     
    35.             account.country,     
    36.             account.phone     
    37.             from account     
    38.             where account.userid=#value#     
    39.     ﹤/select﹥    
    40. ﹤/sqlMap﹥   

    下面是iBATIS SQLMap的Java代码:

    Java代码

    1. try {     
    2.         String resource = "com/quqworld/test/ibatis/SqlMapConfig.xml";     
    3.         Reader reader = Resources.getResourceAsReader(resource);     
    4.     
    5.         SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);     
    6.         Object object =  sqlMap.queryForObject(        
    7.                 "getAllAccountByUserid""ACID",new Account());     
    8.         System.out.println("select result: " +object);     
    9.     
    10.     } catch (Exception e) {     
    11.         e.printStackTrace();     
    12.     }   

    iBATIS SQLMap的配置Demo就向你介绍到这里,希望对你有所帮助。