iBATIS 3 试用手记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

iBATIS3试用手记前记:本来打算去CSDN写这篇文章的,结果CSDN的服务器又出问题了,登录了N次都进不去,郁闷,干脆换个Blog来写。iBATIS以其对SQL控制的灵活性而受到许多大型项目的青睐,它不像Hibernate那样是完全面向对象的,iBATIS是一个半自动化的O/RMapping框架。今晚散逛到iBATIS的官网(),发现iBATIS3已经到Beta5阶段,应该说已经比较稳定了,于是Download了一个下来研究,早就听说iBATIS3在相比iBATIS2作了很大改动,看来不假,呵呵,废话少说,见下。首先是初始化的改变:Java代码1.Readerreader=Resources.getResourceAsReader(CONFIG_FILE_PATH);2.SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(reader,development_oracle);3.SqlSessionsession=sqlSessionFactory.openSession();iBATIS2中的SqlMapClient被SqlSession所替代,而iBATIS2中的静态类SqlMapClientBuilder也被SqlSessionFactoryBuilder所替代,变为了非静态的,此外昀重要的是iBATIS3中需要使用openSession()方法来返回SqlSession的实例,至于上述代码中build方法的第二参数“development_oracle”是环境配置ID,稍候会讲到。下面来看Configuration文件。Xml代码1.?xmlversion=1.0encoding=UTF-8?2.!DOCTYPEconfiguration3.PUBLIC-//ibatis.apache.org//DTDConfig3.0//EN=conf/database.properties/7.environmentsdefault=development8.environmentid=development9.transactionManagertype=JDBC/10.dataSourcetype=POOLED11.propertyname=drivervalue=${database.driver}/12.propertyname=urlvalue=${database.url}/13.propertyname=usernamevalue=${database.user}/a14.propertyname=passwordvalue=${database.password}/15./dataSource16./environment17.18.environmentid=development_oracle19.transactionManagertype=JDBC/20.dataSourcetype=POOLED21.propertyname=drivervalue=${oracle.database.driver}/22.propertyname=urlvalue=${oracle.database.url}/23.propertyname=usernamevalue=${oracle.database.user}/24.propertyname=passwordvalue=${oracle.database.password}/25./dataSource26./environment27./environments28.29.mappers30.mapperresource=conf/NewsNotice.xml/31./mappers32./configurationdatabase.properties内容:Java代码1.database.driver=org.gjt.mm.mysql.Driver2.database.url=jdbc:mysql://localhost:3306/test3.database.user=root4.database.password=root5.6.oracle.database.driver=oracle.jdbc.driver.OracleDriver7.oracle.database.url=jdbc:oracle:thin:@locahost:1521:ORCL28.oracle.database.user=Tester9.oracle.database.password=password本人觉得iBATIS3配置文件昀大的变化是增加了environment/标签,这样对于不同的环境可以配置不同的属性,无论从开发还是布署都显得非常方便。iBATIS3提供了2种transactionManager类型,分别为JDBC和MANAGED,如果设定为MANAGED,则将整个Transaction的生命周期交由J2EEContainer管理;至于JDBC就不用说了吧,这个地球人都晓得的:-D至于Datasource的类型,iBATIS3提供了UNPOOLED、POOLED和JNDI三种方式,UNPOOLED:不使用连接池连接Database,每次请求时OpenConnection,结束时CloseConnection;POOLED:以池化方式连接Database,它有许多属性可供设置,像poolMaximumActiveConnections、poolMaximumIdleConnections、poolMaximumCheckoutTime、poolPingQuery等等;JNDI:在J2EEContainer中配置Datasource。Mapper标签指定要使用的Mapping文件。下面来看Mapping文件内容,这是iBATIS3改动昀多的地方。Xml代码1.?xmlversion=1.0encoding=UTF-8?2.!DOCTYPEmapper3.PUBLIC-//ibatis.apache.org//DTDMapper3.0//EN=NewsNotice6.resultMaptype=org.newsnotice.domain.NewsNoticeModelid=resultMap-getNewsNotice17.idcolumn=NN_IDproperty=id/8.resultcolumn=CATEGORYproperty=category/9.resultcolumn=SUBJECTproperty=subject/10.resultcolumn=POSTED_DATEproperty=postedDate/11.resultcolumn=EXPIRY_DATEproperty=expiryDate/12.resultcolumn=ALERTproperty=alert/13.resultcolumn=EMAIL_ALERTproperty=emailAlert/14.resultcolumn=AUDIENCEproperty=audience/15.resultcolumn=FILTERproperty=filter/16.resultcolumn=FILTER_VALUEproperty=filterValue/17.resultcolumn=SUB_FILTER_VALUEproperty=subFilterValue/18.resultcolumn=EXCLUDE_USER_IDproperty=excludeUserId/19.resultcolumn=WF_DEPARTMENTproperty=department/20.resultcolumn=WF_STATUSproperty=status/21.resultcolumn=WF_NOTESproperty=notes/22.resultcolumn=DEFUNCT_INDproperty=defunctInd/23.resultcolumn=APPROVERproperty=approver/24.associationproperty=newsNoticeContentcolumn=CONTENT_IDjavaType=org.newsnotice.domain.NewsNoticeContentModel25.idcolumn=CONTENT_IDproperty=id/26.resultcolumn=PARENT_NN_IDproperty=parentId/27.resultcolumn=CONTENTproperty=content/28./association29.collectionproperty=newsNoticeMsgBoxListofType=org.newsnotice.domain.NewsNoticeMsgBoxModel30.idcolumn=MSG_BOX_IDproperty=id/31.resultcolumn=USER_IDproperty=userId/32.resultcolumn=MSG_BOX_NN_IDproperty=nnId/33.resultcolumn=FOLDERproperty=folder/34.resultcolumn=READproperty=read/35.resultcolumn=READ_ONproperty=readOn/36.resultcolumn=MSG_BOX_DEFUNCT_INDproperty=defunctInd/37.resultcolumn=MSG_BOX_PI_NOproperty=piNo/38./collection39./resultMap40.41.selectid=getNewsNoticeparameterType=org.newsnotice.domain.NewsNoticeModelresultMap=resultMap-getNewsNotice142.SELECTA.NN_ID,A.CATEGORY,A.SUBJECT,A.POSTED_DATE,A.EXPIRY_DATE,A.ALERT,A.EMAIL_ALERT,A.AUDIENCE,43.A.FILTER,A.FILTER_VALUE,A.SUB_FILTER_VALUE,A.EXCLUDE_USER_ID,A.WF_DEPARTMENT,A.WF_STATUS,A.WF_NOTES,44.A.DEFUNCT_IND,A.APPROVER,B.IDCONTENT_ID,B.PARENT_NN_ID,B.CONTENT,C.IDMSG_BOX_ID,C.USER_ID,45.C.NN_IDMSG_BOX_NN_ID,C.FOLDER,C.READ,C.READ_ON,C.DEFUNCT_INDMSG_BOX_DEFUNCT_IND,C.PI_NOMSG_BOX_PI_NO46.FROMNN_MSTRA,NN_CONTENTB,NN_MSG_BOXC47.WHEREA.NN_ID=B.PA

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功