第一步:创建POJO类
- packagecom.ibatis;
- importjava.io.Serializable;
- publicclassIbatisimplementsSerializable{
- privatestaticfinallongserialVersionUID=4054639727225043549L;
- privateintid;
- privateStringname;
- privateintage;
- publicIbatis(){
- super();
- }
- publicIbatis(intid,Stringname,intage){
- super();
- this.id=id;
- this.name=name;
- this.age=age;
- }
- publicintgetId(){
- returnid;
- }
- publicvoidsetId(intid){
- this.id=id;
- }
- publicStringgetName(){
- returnname;
- }
- publicvoidsetName(Stringname){
- this.name=name;
- }
- publicintgetAge(){
- returnage;
- }
- publicvoidsetAge(intage){
- this.age=age;
- }
- publicStringtoString(){
- returnid+""+name+""+age;
- }
- }
第二步:创建上述POJO类的IBatis配置文件
- <?xmlversion="1.0"encoding="UTF-8"?>
- <!DOCTYPEsqlMap
- PUBLIC"-//iBATIS.com//DTDSQLMap2.0//EN"
- "http://www.ibatis.com/dtd/sql-map-2.dtd">
- <sqlMapnamespace="Ibatis">
- <typeAliasalias="ibatis"type="com.ibatis.Ibatis"/>
- <selectid="getIbatis"parameterClass="java.lang.String"resultClass="ibatis">
- selectid,name,agefromibatiswherename=#name#
- </select>
- <updateid="updateIbatis"parameterClass="ibatis">
- UPDATEibatisSETname=#name#,age=#age#WHEREid=#id#
- </update>
- <insertid="insertIbatis"parameterClass="ibatis">
- INSERTINTOibatis(id,name,age)VALUES(#id#,#name#,#age#)
- </insert>
- <deleteid="deleteIbatis"parameterClass="java.lang.String">
- deletefromibatiswhereid=#value#
- </delete>
- </sqlMap>
第三步:创建IBatis ORM框架的总配置文件SqlMapConfig.xml
- <?xmlversion="1.0"encoding="UTF-8"?>
- <!DOCTYPEsqlMapConfig
- PUBLIC"-//iBATIS.com//DTDSQLMapConfig2.0//EN"
- "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
- <sqlMapConfig>
- <!--
- 1.cacheModelsEnabled是否启动sqlMapClient上的缓存机制;
- 2.enhancementEnabled是否针对POJO启用字节码增强机制以提升getter/setter的调用效能,
- 避免使用JavaReflect所带来的性能开销,同时也为LazyLoading带来了极大的性能提升;
- 3.errorTracingEnabled是否启用错误日志;在开发期间建议设为“true”以方便调试
- 4.lazyLoadingEnabled是否启动延迟加载机制
- 5.maxRequests最大并发请求数(Statement并发数)
- 5.maxTransactions最大并发事务
- 6.maxSessions最大Session数,即当前最大允许的并发sqlMapClient数(介于maxRequests和maxTransactions之间)
- 7.useStatementNamespaces是否使用Statement命名空间(为true时,需要追加命名空间)
- -->
- <settingscacheModelsEnabled="true"enhancementEnabled="true"
- lazyLoadingEnabled="true"errorTracingEnabled="true"maxRequests="32"
- maxSessions="10"maxTransactions="5"useStatementNamespaces="false"/>
- <!--
- transactionManager节点定义了ibatis的事务管理器
- 1.JDBC:通过传统JDBCConnection.commit/rollback实现事务支持
- 2.JTA:使用容器提供的JTA服务实现全局事务管理
- 3.EXTERNAL:外部事务管理,如EJB中使用ibatis,通过EJB的部署配置即可实现自动事务管理机制
- 此时ibatis将所有事务委托给外部容器管理
- -->
- <transactionManagertype="JDBC">
- <!--
- dataSource从属于transactionManager节点,用于设定ibatis运行期使用的DataSource属性
- type属性:dataSource节点的type属性指定了dataSource的实现类型
- 1.SIMPLE:
- SIMPLE是ibatis内置的dataSource实现,其中实现了一个简单的数据库连接池机制,对应ibatis实现类为
- com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory。
- 2.DBCP:
- 基于ApacheDBCP连接池组件实现的DataSource封装,当无容器提供DataSource服务时,
- 建议使用该选项,对应ibatis实现类为com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory。
- 3.JNDI:
- 使用J2EE容器提供的DataSource实现,DataSource将通过指定的JNDIName从容器中获取。
- 对应ibatis实现类为com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory。
- -->
- <dataSourcetype="SIMPLE">
- <propertyname="JDBC.Driver"value="oracle.jdbc.driver.OracleDriver"/>
- <propertyname="JDBC.ConnectionURL"value="jdbc:oracle:thin:@192.168.241.27:1521:orcl"/>
- <propertyname="JDBC.Username"value="aaa"/>
- <propertyname="JDBC.Password"value="aaa"/>
- <propertyname="Pool.MaximumActiveConnections"value="10"/>
- <propertyname="Pool.MaximumIdleConnections"value="5"/>
- <propertyname="Pool.MaximumCheckoutTime"value="120000"/>
- <propertyname="Pool.TimeToWait"value="500"/>
- <propertyname="Pool.PingQuery"value="select1fromACCOUNT"/>
- <propertyname="Pool.PingEnabled"value="false"/>
- <propertyname="Pool.PingConnectionsOlderThan"value="1"/>
- <propertyname="Pool.PingConnectionsNotUsedFor"value="1"/>
- </dataSource>
- </transactionManager>
- <sqlMapresource="com/ibatis/Ibatis.xml"/>
- </sqlMapConfig>
第四步:创建一个测试类,检验上述配置 + 类文件
- packagecom.ibatis;
- importjava.io.Reader;
- importorg.apache.log4j.Logger;
- importcom.ibatis.common.resources.Resources;
- importcom.ibatis.sqlmap.client.SqlMapClient;
- importcom.ibatis.sqlmap.client.SqlMapClientBuilder;
- publicclassTestMain{
- staticLoggerlogger=Logger.getLogger(TestMain.class.getName());
- publicstaticvoidmain(String[]args){
- Stringresource="SqlMapConfig.xml";
- try{
- Readerreader=Resources.getResourceAsReader(resource);
- SqlMapClientsqlMap=SqlMapClientBuilder.buildSqlMapClient(reader);
- sqlMap.startTransaction();
- Ibatisibatis=(Ibatis)sqlMap.queryForObject("getIbatis","Erica");
- System.out.println(ibatis.toString());
- sqlMap.commitTransaction();
- }catch(Exceptione){
- logger.debug(e.toString());
- }
- }
- }
-
分享到:
相关推荐
ibatis入门教程
iBatis入门教程, 适合初次学习iBatis的人
包含IBatis入门教程和开发指南的PDF格式,详细介绍了IBATIS的架构和原理,安装和配置,以及如何使用IBATIS。
iBATIS框架学习:iBATIS入门教程
ibatis入门教程 ibatis开发指南
ibatis入门教程,ibatis开发指南 内含两份文档
iBatis 入门教程
Ibatis入门教程,简单介绍利用ibatis进行增删改查操作。
ibatis 开发包 入门教程 帮组手册
文件内容讲的是<iBATIS入门教程>.
ibatis基础教程
ibatis入门教程及调用存储过程实例详解。
iBatis简明教程及快速入门 iBatis简明教程及快速入门
简单的Ibatis入门例子,让你踏入Ibatis大门
这版PPT仅供学习使用,是ibatis入门的知识,用PPT做的,很容上手。
ibatis入门教程,从小白到熟练掌握ibatis的应用。ibatis结合框架的应用
iBATIS教程,详细的配置和实例,适合所有初学者。
ibatis开发指南 ibatis入门基础教程 ibatisibatis开发指南 ibatis入门基础教程 ibatisibatis开发指南 ibatis入门基础教程 ibatisibatis开发指南 ibatis入门基础教程 ibatis