`

ibatis配置详解

阅读更多

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>

 

 

http://blog.sina.com.cn/s/blog_5e0d59fb0100q2kx.html

分享到:
评论

相关推荐

    ibatis 配置文件详解

    ### ibatis配置文件详解 #### 一、ibatis概述 ibatis,又称MyBatis,是一种优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。ibatis可以...

    ibatis相关配置

    ### Ibatis配置详解 1. **全局配置文件(ibatis-config.xml)** 全局配置文件是Ibatis系统的起点,它包含了数据源、事务管理器、插件、类型别名等整体设置。例如: ```xml &lt;!DOCTYPE configuration PUBLIC "-/...

    log4j和ibatis配置文档

    《log4j与iBatis配置详解》 在软件开发中,日志管理和数据库操作是两个至关重要的环节。Log4j作为Java世界里最流行的日志框架之一,它提供了强大的日志记录功能,帮助开发者追踪应用程序运行过程中的信息、警告、...

    IBATIS 配置+简单案列

    **IBATIS 配置详解** IBATIS 是一款优秀的持久层框架,它为Java应用程序提供了灵活的数据库访问层。它的主要目标是简化数据库操作,将SQL与Java代码分离,从而实现更高效的数据库管理和维护。在本教程中,我们将...

    ibatis sqlmap配置详解

    SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的...Sql Map配置文件是iBatis配置的核心,从数据库连接到执行SQL时使用的sqlMap文件都是通过此文件中的配置提供给框架的,它通常命名为sqlMapConfig.xml

    ibatis配置文件、映射文件详解

    ### ibatis配置文件、映射文件详解 #### 1. SQL Map Config 文件详解 在ibatis框架中,`sqlMapConfig.xml`是一个非常重要的配置文件,它主要用于设置ibatis的全局配置信息,包括数据库连接信息、环境配置以及其它...

    ibatis基础知识详解

    **Ibatis基础知识详解** Ibatis,全称MyBatis,是一个优秀的开源持久层框架,它支持定制化SQL、存储过程以及高级映射。在Java应用中,Ibatis可以帮助开发者将数据库操作与业务逻辑分离,从而简化开发工作,提高代码...

    ibatis环境搭建教程

    #### 三、ibatis配置详解 在ibatis中,配置文件通常包括`sqlmap`、`datasource`、`settings`等元素,下面详细介绍这些配置项的作用: ##### 1. SQL Map配置 - ****:用于定义和引用属性值,可以在配置文件中使用...

    ibatis配置文件信息

    #### 二、ibatis配置文件详解 ibatis的配置文件主要包括三部分:`SqlMap.properties`、`SqlMapConfig.xml` 和 `Student.xml`。下面将分别对这三个文件进行详细介绍。 ##### 1. SqlMap.properties 文件 `SqlMap....

    Spring+iBatis整合详解

    ### Spring与iBatis整合详解 #### 一、前言 在Java企业级应用开发中,Spring框架以其强大的依赖注入(DI)和面向切面编程(AOP)能力深受开发者喜爱,而iBatis(现更名为MyBatis)作为一款优秀的持久层框架,通过...

    ibatis_SqlMapConfig配置详解

    SqlMapConfig.xml是iBATIS的核心配置文件,它定义了全局的设置和数据源信息,使得整个系统能够正确地运行和管理SQL映射。下面我们将详细解析这个配置文件的各个部分。 首先,配置文件的开头是XML声明和DTD定义,...

    ibatis开发

    #### 三、ibatis配置详解 ibatis的配置主要通过XML文件完成,其中最重要的文件是`sqlMapConfig.xml`,它包含了数据源、事务管理器等全局配置信息。此外,每个具体的数据库操作都通过单独的Mapper XML文件定义。 - *...

    struts+spring+ibaits配置详解

    ### Struts + Spring + iBatis 配置详解 #### 一、概述 在实际的软件开发项目中,为了提高代码的复用性与维护性,通常会采用一系列的框架来构建应用程序。其中,Struts、Spring 和 iBatis 是三个非常流行且互补的...

    Spring 3.0 整合Ibatis 3

    iBatis 配置详解 iBatis 的配置需要特别注意,因为这关系到 SQL 映射文件的加载以及后续的数据操作。具体的配置内容会在后续的 Java 文件中体现。 #### 五、总结 通过以上步骤,我们可以有效地将 Spring 3.0 与 ...

    ibatis 开发指南(pdf)

    #### 三、iBatis配置详解 - **Settings节点**:定义全局设置,如是否启用缓存、是否使用字节码增强机制、是否启用延迟加载等。 - **transactionManager节点**:定义iBatis的事务管理器类型,可以选择JDBC、JTA或...

Global site tag (gtag.js) - Google Analytics