IBatis 入门教程

第一步:创建POJO类

Java代码   收藏代码
  1. package com.ibatis;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. public class Ibatis implements Serializable{  
  6.   
  7.     private static final long serialVersionUID = 4054639727225043549L;  
  8.     private int id;  
  9.     private String name;  
  10.     private int age;  
  11.       
  12.     public Ibatis() {  
  13.         super();  
  14.     }  
  15.       
  16.     public Ibatis(int id, String name, int age) {  
  17.         super();  
  18.         this.id = id;  
  19.         this.name = name;  
  20.         this.age = age;  
  21.     }  
  22.   
  23.     public int getId() {  
  24.         return id;  
  25.     }  
  26.   
  27.     public void setId(int id) {  
  28.         this.id = id;  
  29.     }  
  30.   
  31.     public String getName() {  
  32.         return name;  
  33.     }  
  34.   
  35.     public void setName(String name) {  
  36.         this.name = name;  
  37.     }  
  38.   
  39.     public int getAge() {  
  40.         return age;  
  41.     }  
  42.   
  43.     public void setAge(int age) {  
  44.         this.age = age;  
  45.     }  
  46.       
  47.     public String toString(){  
  48.         return id + " " + name + " " + age;  
  49.     }  
  50. }  

 第二步:创建上述POJO类的IBatis配置文件

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE sqlMap  
  3. PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"  
  4. "http://www.ibatis.com/dtd/sql-map-2.dtd">  
  5.   
  6. <sqlMap namespace="Ibatis">  
  7.     <typeAlias alias="ibatis" type="com.ibatis.Ibatis"/>  
  8.   
  9.     <select id="getIbatis" parameterClass="java.lang.String" resultClass="ibatis">  
  10.         select id, name, age from ibatis where name = #name#  
  11.     </select>  
  12.       
  13.     <update id="updateIbatis" parameterClass="ibatis">  
  14.         UPDATE ibatis SET name=#name#, age=#age# WHERE id = #id#  
  15.     </update>  
  16.       
  17.     <insert id="insertIbatis" parameterClass="ibatis">  
  18.         INSERT INTO ibatis (id, name,age) VALUES (#id#, #name#, #age#)  
  19.     </insert>  
  20.       
  21.     <delete id="deleteIbatis" parameterClass="java.lang.String">  
  22.         delete from ibatis where id = #value#  
  23.     </delete>  
  24. </sqlMap>  

第三步:创建IBatis ORM框架的总配置文件SqlMapConfig.xml

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE sqlMapConfig  
  3. PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"  
  4. "http://www.ibatis.com/dtd/sql-map-config-2.dtd">  
  5. <sqlMapConfig>  
  6.       
  7.     <!--   
  8.         1. cacheModelsEnabled 是否启动sqlMapClient上的缓存机制;  
  9.         2. enhancementEnabled是否针对POJO启用字节码增强机制以提升getter/setter的调用效能,  
  10.                 避免使用Java Reflect所带来的性能开销,同时也为Lazy Loading带来了极大的性能提升;  
  11.         3. errorTracingEnabled 是否启用错误日志;在开发期间建议设为“true”以方便调试  
  12.         4. lazyLoadingEnabled 是否启动延迟加载机制  
  13.         5. maxRequests 最大并发请求数(Statement并发数)  
  14.         5. maxTransactions 最大并发事务  
  15.         6. maxSessions 最大Session数,即当前最大允许的并发sqlMapClient数(介于maxRequests和maxTransactions之间)  
  16.         7. useStatementNamespaces 是否使用Statement命名空间(为true时,需要追加命名空间)  
  17.      -->  
  18.     <settings cacheModelsEnabled="true" enhancementEnabled="true"  
  19.         lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"  
  20.         maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />  
  21.       
  22.     <!--   
  23.         transactionManager 节点定义了ibatis的事务管理器  
  24.         1. JDBC:通过传统JDBC Connection.commit/rollback实现事务支持  
  25.         2. JTA:使用容器提供的JTA服务实现全局事务管理  
  26.         3. EXTERNAL:外部事务管理,如EJB中使用ibatis,通过EJB的部署配置即可实现自动事务管理机制  
  27.                 此时ibatis将所有事务委托给外部容器管理   
  28.      -->  
  29.     <transactionManager type="JDBC">  
  30.         <!--   
  31.             dataSource从属于transactionManager节点,用于设定ibatis运行期使用的DataSource属性  
  32.             type属性: dataSource节点的type属性指定了dataSource的实现类型  
  33.             1. SIMPLE:  
  34.                 SIMPLE是ibatis内置的dataSource实现,其中实现了一个简单的数据库连接池机制, 对应ibatis 实现类为  
  35.                 com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory。  
  36.             2. DBCP:  
  37.                 基于Apache DBCP连接池组件实现的DataSource 封装,当无容器提供DataSource 服务时,  
  38.                 建议使用该选项,对应ibatis 实现类为com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory。  
  39.             3. JNDI:  
  40.                 使用J2EE 容器提供的DataSource 实现,DataSource 将通过指定的JNDI Name 从容器中获取。  
  41.                 对应ibatis 实现类为com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory。  
  42.          -->  
  43.         <dataSource type="SIMPLE">  
  44.             <!-- JDBC驱动 -->  
  45.             <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" />  
  46.             <!-- 数据库URL -->  
  47.             <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.241.27:1521:orcl" />  
  48.             <!-- 数据库用户名 -->  
  49.             <property name="JDBC.Username" value="aaa" />  
  50.             <!-- 数据库密码 -->  
  51.             <property name="JDBC.Password" value="aaa" />  
  52.             <property name="Pool.MaximumActiveConnections" value="10" />  
  53.             <property name="Pool.MaximumIdleConnections" value="5" />  
  54.             <property name="Pool.MaximumCheckoutTime" value="120000" />  
  55.             <property name="Pool.TimeToWait" value="500" />  
  56.             <property name="Pool.PingQuery" value="select 1 from ACCOUNT" />  
  57.             <property name="Pool.PingEnabled" value="false" />  
  58.             <property name="Pool.PingConnectionsOlderThan" value="1" />  
  59.             <property name="Pool.PingConnectionsNotUsedFor" value="1" />  
  60.         </dataSource>  
  61.     </transactionManager>  
  62.       
  63.     <!-- 指定映射文件的位置,配置中可出现多个sqlMap节点,以指定项目内所有映射文件 -->  
  64.     <sqlMap resource="com/ibatis/Ibatis.xml" />  
  65. </sqlMapConfig>  

 第四步:创建一个测试类,检验上述配置 + 类文件

Java代码   收藏代码
  1. package com.ibatis;  
  2.   
  3. import java.io.Reader;  
  4.   
  5. import org.apache.log4j.Logger;  
  6.   
  7. import com.ibatis.common.resources.Resources;  
  8. import com.ibatis.sqlmap.client.SqlMapClient;  
  9. import com.ibatis.sqlmap.client.SqlMapClientBuilder;  
  10.   
  11. public class TestMain {  
  12.       
  13.     static Logger logger = Logger.getLogger(TestMain.class.getName());  
  14.   
  15.     /** 
  16.      * @param args 
  17.      */  
  18.     public static void main(String[] args) {  
  19.         String resource ="SqlMapConfig.xml";  
  20.           
  21.         //sqlMap系统初始化完毕,开始执行update操作  
  22.         try {  
  23.             Reader reader = Resources.getResourceAsReader(resource);  
  24.             SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);  
  25.               
  26.             sqlMap.startTransaction();  
  27.   
  28. //          Ibatis ibatis = new Ibatis();  
  29. //          ibatis.setId(new Integer(1));  
  30. //          ibatis.setName("Erica");  
  31. //          ibatis.setAge(new Integer(1));  
  32. //          sqlMap.insert("insertIbatis",ibatis);  
  33.               
  34.             Ibatis ibatis = (Ibatis)sqlMap.queryForObject("getIbatis""Erica");  
  35.             System.out.println(ibatis.toString());  
  36.               
  37.             sqlMap.commitTransaction();  
  38.         } catch (Exception e) {  
  39.             // TODO: handle exception  
  40.             logger.debug(e.toString());  
  41.         }     
  42.     }  
  43. }  
  44.      


    http://pengwei-daily.iteye.com/blog/1037540

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值