Ibatis配置详解【转载】
ibatis与hibernate都是持久层的额技术框架,这里看看ibatis的配置:作为自己以后的参考:
ibstis的配置主要由两种文件,
(一)有关项目的总体配置,如连接的数据源,连接池,缓存等的配置,也即sqlmapconfig.xml文件的配置。
(二)sqlmap.xml文件的配置,也即对象与表的操作映射的配置。
下面分两个部分进行记录
第一部分 sqlmapconfig.xml
在这个文件中总共的结构如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!-- 这里进行文件的注释说明 -->
<properties resource=""> ------->在这里将项目(工程)的所有资源文件包含进来,将相对与src路径的资源文件的路径以及文件名包含进来
<settings cacheModelsEnabled="true" --->全局控制sqlMapClient的缓存
enhancementEnabled="true" --->全局控制运行时字节码增强,优化javabean的属性性能
lazyLoadingEnabled="true" --->延迟加载
errorTracingEnabled="true"
maxRequests="32" ---->同时执行sql语句的最大线程数,通常大小是maxTransactions的10倍,并且总是大于maxTransactions和maxSessions的总和。减小这个值能够提高性能。
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false" --->是否启动全局的sqlmap名字空间。如果启动则应用时,必须加上名字空间:queryForObject(sqlMap的名字空间.statementName)
/> --------->这个节点是设置工程的总体性能,根据名称来设置
<typeAlias alias="person" type="com.Jdnis.ibatis.model.Person" />
----->这个节点是将长的路径名等用短的进行替代,也就是用上面的person来代表右边的person类
<transactionManager type="JDBC"> -->type指定事务管理器:JDBC,JTA,EXTERNAL,三者的区别后面再讲到
<dataSource type="SIMPLE"> -->type值由:SIMPLE,DBCP,JNDI三者的使用后面再讲
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/person" />
<property name="JDBC.Username" value="root" />
<property name="JDBC.Password" value="root" />
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="120000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery" value="select 1 from sample" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
------->这个节点是来配置数据源,数据库连接等等信息的。
<sqlMap resource="com/neusoft/ibatis/map/person.xml" />
-->将系统中的对象与数据库表的映射文件都包含进来上面采用的时相对路径,当然也可以用绝对路径:<sqlmap url="file:///C:/config/person.xml"
</sqlMapConfig>
第二部分:sqlmap.xml映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="Person">
<!-- 注释说明 -->
<cacheModel id="personCache" type="LRU">
<flushInterval hours="24"/>
<property name="size" value="1000"/>
</cacheModel>
<typeAlias alias="person" type="com.Jdnis.ibatis.model.Person" />
<parameterMap id="personParam" class="person">
<parameter property="id"/>
......
</parameterMap>
<resultMap id="personResult" class="person">
<result property="id" column="PER_ID"/>
......
</resultMap>
<statement id="insertPerson" parameterClass="person">
INSERT INTO persons VALUES(#id#,#firstName#,#lastName#,#birthDate#,#weight#,#height#)
</statement>
其他<statement>,<insert>,<update>,<select>,<delete>,<procedure>
</sqlMap>
注解:
<1>statement
属性:id(名称),parameterClass(输入参数的类型),resultClass(输出参数的类型),parameterMap(name of parameterMap),resultMap(name of reaultMap),cacheModel(name of cacheModel),其中只有一个必选属性:id
statement 的体时sql语句,当sql有特殊字符时,将它放进CDATA块中如:<![CDATA[select * from person where PER_D>#id#]]>
<2>自动生成主键
通过<insert>子元素<selectKey>来支持自动生成的键值,例如:
----对于oracle
<insert id="insertPerson-Oracl" parameterClass="person">
<selectKey resultClass="int" keyProperty="id">
SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL
</selectKey>
insert into
PERSON(PER_ID,PER_FIRST.....)
values(#id#,#firstName#....);
</insert>
--->对于sqlServer
<insert id="insertPerson-sqlServer" parameterClass="person">
insert into
PERSON(PER_FIRST.....)
values(#firstName#....);
<selectKey resultClass="int" keyProperty="id">
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
<3>存储过程
<parameterMap id="swapParameters" class="map">
<parameter property="email1" jdbcType="varchar" javaType="java.lang.String" model="INOUT"/>
<parameter property="email12" jdbcType="varchar" javaType="java.lang.String" model="INOUT"/>
</parameterMap>
<procedure id="swapEmailAddresses" parameterMap="swapParameters">
{call swap_email_addres(?,?)}
</procedure>
<4>parameterClass 输入参数的类类型
<5>resultClass 输出参数的类类型
<6>parameterMap
用到预处理的PreparedStatement,将要进行预处理的数据,先放到parameterMap元素中,接着引用parameterMap元素:例如:
<parameterMap id="insert-person-param" class="person">
<parameter property="id"/>
<parameter property="firstName"/>
<parameter property="lastName"/>
<parameter property="birthDate"/>
<parameter property="weight">
<parameter property="height"/>
</parameterMap>
<statement id="insertPerson" parameterMap="insert-person-param">
insert into person values(?,?,?,?,?,?);
</statement>
<7>resultMap结果映射到预先定义的resultMap中
<resultMap id="get-person" resultClass="person">
<result property="id" column="PER_ID"/>
<result property="firstName" column="PER_FIRST_NAME"/>
......
</resultMap>
<statement id="getPerson" resuleMap="get-person">
select * from person
<statement>
<8>cacheModel定义查询缓存
<cacheModel id="person-cache" implementation="LRU">
<flushInterval hours="24">
<flushOnExecute statement="insertPerson"/>
<flushOnExecute statement="updatePerson"/>
<flushOnExecute statement="deletePerson"/>
......
<property name="size" value="1000"/>
</cacheModel>
<statement id="getPerson" parameterClass="int" cacheModel="person-cache">
<![CDATA[select * from person where PER_ID=#id#]]>
</statement>
注解:每隔24小时,就会清除缓冲区,除非执行了insertPerson,updatePerson,deletePerson操作(立即清除缓冲区)
分享到:
相关推荐
ibatis 配置文件详解
ibatis开发指南 博文链接:https://imticg.iteye.com/blog/216080
SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的...Sql Map配置文件是iBatis配置的核心,从数据库连接到执行SQL时使用的sqlMap文件都是通过此文件中的配置提供给框架的,它通常命名为sqlMapConfig.xml
ibatis配置文件、映射文件详解.doc
ibatis_SqlMapConfig配置详解,希望对初次接触ibatis的童鞋,有帮助
springMvc+ibatis 配置详解
ibatis配置文件、映射文件详解,里面详细介绍了ibatis的配置文件以及映射文件的详细解释,通过这你能很好的了解ibatis配置文件以及映射文件的含义。。。
iBATIS配置文件详解
关于ibatis的配置和映射 这里的配置文件和映射文件是从网上收集的集合 适合初学的人
本文档详细介绍了iBatis开发,开发流程、iBatis配置、映射的详解,希望能帮到各位。
ibatis ibatis学习笔记(一)>>>>>>>sqlMapConfig.xml文件详解
ibatis 一个简单的项目详解及配置,方便初学者更快地了解ibatis
很详细的说明哦 带有图和步骤详解 还有相应文件
本教程介绍了"jdk1.6+MyEclipse6.5+Tomcat 6.0" 的开发环境的搭建设和配置,针对关键的每一步都进行了说明,另附截图,对新人来说比较容易理解和上手. 让新人少走弯路,对老鸟和大虾来说,就不用看了.
本文档详细介绍了iBatis开发,开发流程、iBatis配置、映射的详解,希望能帮到各位。
IBATIS入门,主要讲解了ibatis的起源、sqlmap配置及详解的相关PPT。
本文通过配合在实际开发中使用的框架加以说明,是一个不错的学些资料
MyBatis是一个半自动化的轻量级的持久化层框架。 MyBatis实际上是Ibatis3.0版本以后的持久化层框架,下面通过本文给大家分享Mybatis 创建方法、全局配置教程详解,需要的朋友参考下吧