ibatis简单应用培训

ibatis简单应用培训

ID:34723332

大小:181.18 KB

页数:11页

时间:2019-03-10

上传者:U-25918
ibatis简单应用培训_第1页
ibatis简单应用培训_第2页
ibatis简单应用培训_第3页
ibatis简单应用培训_第4页
ibatis简单应用培训_第5页
资源描述:

《ibatis简单应用培训》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

Ibatis2简单应用培训一、ibatis简单介绍一个ORM解决方案,iBATIS最大的特点就是小巧,上手很快。使用iBATIS提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate实现ORM而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL语句,而iBATIS则要求开发者编写具体的SQL语句。相对Hibernate等“全自动”ORM机制而言,iBATIS以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间二、环境搭建与配置1.依赖环境与对应配置i.使用JDBC的方式连接数据库,最简单的环境只需JDK及数据库驱动;配置文件SmlMapConfig.xmlii.使用DBCP来管理连接池,所需JAR包如下: 配置文件SmlMapConfig.xmli.ISS系统环境,所需JAR包如下:Spring相关配置appContext-common.xmlclasspath:server.propertiesclasspath:/conf/sqlmap/sqlMapConfig-oracle.xmlPROPAGATION_REQUIRED,-ThrowablePROPAGATION_REQUIRED,-Throwable PROPAGATION_REQUIRED,-ThrowablePROPAGATION_REQUIRED,-ThrowablePROPAGATION_REQUIRED,-ThrowablePROPAGATION_REQUIRED,-ThrowablePROPAGATION_REQUIRED,-Throwable*Logic_transactionInterceptor配置文件SqlMapConfig.xml一、配置详解 1.SqlMapConfig标签引用属性文件引用属性文件,引用后用EL表达式取属性文件中的值连接参数设置maxRequests最大请求数,不能小于maxSession和maxTransaction,512maxSession最大的会话,128maxTransactions最大事,32cacheModelsEnabled启用缓存,truelazyLoadingEnabled延迟加载,trueenhancementEnabled增强模式,需要cglib支持,trueuseStatementNamesapces使用命名空间,false对象生成工厂默认使用内部机制class.newInstance(),所以返回的对象要求有无参的构造方法,否则会报错事务管理器JDBC普通的JDBC事务管理器JTA基于容器的事务管理器,企业级的容器中使用EXTERNAL外部的事务管理器,管理事务的是应用程序,而不是iBATIS数据源SIMPLE简单的数据源工厂,配制简单数据连接池的数据源DBCPApache的DBCP连接池JNDIJNDI目录服务器,基于容器级的开发特定类型转换器2.2及以后版本中可转换大部分数据库类型,所以此标签基本被废除了实体映射resource用于指定本地的映射文件url指定远程分布式系统中的映射文件2.SqlMap标签详解 namespace命名空间类别名用别名取代包含包名的类命名Ibatis内置类别名别名类型事务管理器型类JDBCcom.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransactionConfigJTAcom.ibatis.sqlmap.engine.transaction.jta.JtaTransactionConfigEXTERNALcom.ibatis.sqlmap.engine.transaction.external.ExternalTransactionConfig数据类型 stringjava.lang.Stringbytejava.lang.Bytelongjava.lang.Longshortjava.lang.Shortintjava.lang.Integerintegerjava.lang.Integerdoublejava.lang.Doublefloatjava.lang.Floatbooleanjava.lang.Booleandatejava.util.Datedecimaljava.math.BigDecimalobjectjava.lang.Objectmapjava.util.Maphashmapjava.util.HashMaplistjava.util.Listarraylistjava.util.ArrayListcollectionjava.util.Collectioniteratorjava.util.Iterator数据源工厂类型SIMPLEcom.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactoryDBCPcom.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactoryJNDIcom.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory高速缓存控制器类型 FIFOcom.ibatis.sqlmap.engine.cache.fifo.FifoCacheControllerLRUcom.ibatis.sqlmap.engine.cache.lru.LruCacheControllerMEMORYcom.ibatis.sqlmap.engine.cache.memory.MemoryCacheControllerOSCACHEcom.ibatis.sqlmap.engine.cache.oscache.OSCacheControllerXML结果类型 Domcom.ibatis.sqlmap.engine.type.DomTypeMarkerdomCollectioncom.ibatis.sqlmap.engine.type.DomCollectionTypeMarkerXmlcom.ibatis.sqlmap.engine.type.XmlTypeMarker XmlCollectioncom.ibatis.sqlmap.engine.type.XmlCollectionTypeMarker返回类型显示映射关系SQL字段与类属性映射关系参数类型外联映射关系SQL字段类型与类属性映射关系,在SQL语句中用?占位符自动生成键生成方式与数据库有关,MySQL、MS-SQL等先插入数据再获取主键,Oracle等先查出系列的nextVal,再插入数据·Oracle系列值selectsequence.nextValfromdualinsertintoACCOUNT(ACC_ID,ACC_FIRST_NAME,ACC_LAST_NAME,ACC_EMAIL)values(#id#,#firstName#,#lastName#,#emailAddress#)·MySQL自动增长值insertintoACCOUNT(ACC_FIRST_NAME,ACC_LAST_NAME,ACC_EMAIL)values(#firstName#,#lastName#,#emailAddress#)select@@IDENTITYasid#符号占位符相当于JDBC中上的?号,以对象的方式传递参数,可以防止SQL注入攻击,如:select*fromACCOUNTwhereACC_ID=#id#$符号占位符以拼接字符串的方式传递参数,经典用场是like语句,如: select*fromACCOUNTwhereACC_FIRST_NAMElike'%$name$%'使用$符号做占位符时应特别注意防止SQL注入攻击.1.动态SQL语句动态标签分类·标签·二元标签·一元标签·标签一元条件标签·检查是否存在该属性(存在parameterbean的属性)·检查是否不存在该属性(不存在parameterbean的属性)·检查属性是否为null·检查属性是否不为null·检查Collection.size()的值,属性的String或String.valueOf()值,是否为null或空(“”或size()<1)·检查Collection.size()的值,属性的String或String.valueOf()值,是否不为null或不为空(“”或size()>0)二元条件标签·比较属性值和静态值或另一个属性值是否相等·比较属性值和静态值或另一个属性值是否不相等·比较属性值是否大于静态值或另一个属性值 ·比较属性值是否大于等于静态值或另一个属性值·比较属性值是否小于静态值或另一个属性值·比较属性值是否小于等于静态值或另一个属性值其它标签·检查是否存在参数对象(不为null)·检查是否不存在参数对象(参数对象为null)·假如有参数:Mapmap=newHashMap();map.put("keyWords",newString[]{"1","3","4"});动态语句:select*fromACCOUNT#keyWords[]#生成的SQL语句为:select*fromACCOUNTwhereACC_IDin(1,3,4)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭