您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > IBatis学习笔记以及使用心得
如上图所示,在左侧是方法可以输入的参数,右侧是调用的方法是输出的参数类型,中间部分是配置文件,看的出,这是IBatis的核心部分,这里面定义的部分需要根据前台传来的数据来定义,但是这一部分可以决定反回的值是什么类型,并且在这里面还包含了极多的内容,特别是在配置文件的写法。使用之初必须要在工程当中引入需要的包:iBatis-common.jar,iBatis-dao.jar,iBatis-sqlMap.jar,commons-logging-1.0.1.jar以及一些其他可能用到的jar包。直奔正题也是最主要的配置文件部分。SqlMap的配置.SqlMapConfig.xml先从例子入手。?xmlversion=1.0encoding=UTF-8?!DOCTYPEsqlMapConfigPUBLIC-//iBATIS.com//DTDSQLMapConfig2.0//EN!--AlwaysensuretousethecorrectXMLheaderasabove!--sqlMapConfig!--Theproperties(name=value)inthefilespecifiedherecanbeusedplaceholdersinthisconfigfile(e.g.“${driver}”.Thefileisrelativetotheclasspathandiscompletelyoptional.--propertiesresource=examples/sqlmap/maps/SqlMapConfigExample.properties/!--ThesesettingscontrolSqlMapClientconfigurationdetails,primarilytodowithtransactionmanagement.Theyarealloptional(moredetaillaterinthisdocument).--settingscacheModelsEnabled=trueenhancementEnabled=truelazyLoadingEnabled=truemaxRequests=32maxSessions=10maxTransactions=5useStatementNamespaces=false/!--Typealiasesallowyoutouseashorternameforlongfullyqualifiedclassnames.--typeAliasalias=ordertype=testdomain.Order/!--ConfigureadatasourcetousewiththisSQLMapusingSimpleDataSource.Noticetheuseofthepropertiesfromtheaboveresource--transactionManagertype=JDBCdataSourcetype=SIMPLEpropertyname=JDBC.Drivervalue=${driver}/propertyname=JDBC.ConnectionURLvalue=${url}/propertyname=JDBC.Usernamevalue=${username}/propertyname=JDBC.Passwordvalue=${password}/propertyname=JDBC.DefaultAutoCommitvalue=true/propertyname=Pool.MaximumActiveConnectionsvalue=10/propertyname=Pool.MaximumIdleConnectionsvalue=5/propertyname=Pool.MaximumCheckoutTimevalue=120000/propertyname=Pool.TimeToWaitvalue=500/propertyname=Pool.PingQueryvalue=select1fromACCOUNT/propertyname=Pool.PingEnabledvalue=false/propertyname=Pool.PingConnectionsOlderThanvalue=1/propertyname=Pool.PingConnectionsNotUsedForvalue=1//dataSource/transactionManager!--IdentifyallSQLMapXMLfilestobeloadedbythisSQLmap.Noticethepathsarerelativetotheclasspath.Fornow,weonlyhaveone…--sqlMapresource=examples/sqlmap/maps/Person.xml//sqlMapConfigproperties元素在配置文件中properties是唯一的,SQLMap配置文件拥有唯一的properties元素,用于在配置文件中使用标准的Java属性文件(name=value)。这样做后,在属性文件中定义的属性可以作为变量在SQLMap配置文件及其包含的所有SQLMap映射文件中引用。例如,如果属性文件中包含属性:driver=org.hsqldb.jdbcDriverSQLMap配置文件及其每个映射文件都可以使用占位符${driver}来代表值org.hsqldb.jdbcDriver。例如:propertyname=JDBC.Drivervalue=${driver}/属性文件可以从类路径中加载(使用resource熟悉),也可以从合法的URL中加载(使用url属性)。例如,要加载固定路径的属性文件,使用:propertiesurl=”file:///c:/config/my.properties”/settings元素setting元素用于配置和优化SqlMapClient实例的各选项。setting元素本身及其所有的属性都是可选的。具体设置如下:maxRequests同时执行SQL语句的最大线程数。大于这个值的线程将阻塞直到另一个线程执行完成。不同的DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是maxTransactions(参见以下)的10倍,并且总是大于maxSessions和maxTranactions。减小这个参数值通常能提高性能。例如:maxRequests=“256”缺省值:512maxSessions同一时间内活动的最大session数。一个session可以是代码请求的显式session,也可以是当线程使用SqlMapClient实例(即执行一条语句)自动获得的session。它应该总是大于或等于maxTransactions并小于maxRequests。减小这个参数值通常能减少内存使用。例如:maxSessions=“64”缺省值:128maxTransactions同时进入SqlMapClient.startTransaction()的最大线程数。大于这个值的线程将阻塞直到另一个线程退出。不同的DBMS有不同的限制值,但任何数据库都有这些限制。这个参数值应该总是小于或等于maxSessions并总是远远小于maxRequests。减小这个参数值通常能提高性能。例如:maxTransactions=“16”缺省值:32cacheModelsEnabled全局性地启用或禁用SqlMapClient的所有缓存model。调试程序时使用。例如:cacheModelsEnabled=“true”缺省值:true(启用)lazyLoadingEnabled全局性地启用或禁用SqlMapClient的所有延迟加载。调试程序时使用。例子:lazyLoadingEnabled=“true”缺省值:true(启用)enhancementEnabled全局性地启用或禁用运行时字节码增强,以优化访问JavaBean属性的性能,同时优化延迟加载的性能。例子:enhancementEnabled=“true”缺省值:false(禁用)useStatementNamespaces如果启用本属性,必须使用全限定名来引用mappedstatement。Mappedstatement的全限定名由sql-map的名称和mapped-statement的名称合成。例如:queryForObject(“sqlMapName.statementName”);例如:useStatementNamespaces=“false”缺省值:false(禁用)typeAlias元素typeAlias元素让您为一个通常较长的、全限定类名指定一个较短的别名。例如:typeAliasalias=shortnametype=com.long.class.path.Class/在SQLMap配置文件预定义了几个别名。它们是:事务管理器别名JDBCJTAEXTERNALcom.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransactionConfigcom.ibatis.sqlmap.engine.transaction.jta.JtaTransactionConfigcom.ibatis.sqlmap.engine.transaction.external.ExternalTransactionConfigDataSourceFactory别名SIMPLEDBCPJNDIcom.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactorycom.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactorycom.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory这些是不用自己再写的,拿来即可使用。transactionManager元素2.0版本只允许一个数据源。要使用多个部署/配置参数,您最好使用多个属性文件,不同的系统使用不同的属性文件,或在创建SQLMap时传入不同的属性文件.元素让您为SQLMap配置事务管理服务。属性type指定所使用的事务管理器类型。这个属性值可以是一个类名,也可以是一个别名。包含在框架的三个事务管理器分别是:JDBC,JTA和EXTERNAL。JDBC:通过常用的Connectioncommit()和rollback()方法,让JDBC管理事务。JTA:本事务管理器使用一个JTA全局事务,使SQLMap的事务包括在更大的事务范围内,这个更大的事务范围可能包括了其他的数据库和事务资源。这个配置需要一个UserTransaction属性,以便从JNDI获得一个UserTransaction。参见以下JNDI数据源的例子。EXTERNAL:这个配置可以让您自己管理事务。您仍然可以配置一个数据源,但事务不再作为框架生命周期的一部分被提交或回退。这意味着SQLMap外部应用的一部分必须自己管理事务。这个配置也可以用于没有事务管理的数据库(例如只读数据库)datasource元素datasource是transactionManager的一部分,为SQLMap数据源设置了一系列参数。目前SQLMap架构只提供三个DataSourceFactory,SimpleDataSourceFactorySimpleDataSourceFactory为DataSource提供了一个基本的实现
本文标题:IBatis学习笔记以及使用心得
链接地址:https://www.777doc.com/doc-4893069 .html