iBatis配置文件讲解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cb905259982/article/details/73250299

配置文件名一般为:sqlMapConfig.xml

内容配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.apache.org//DTD SQL Map Config 2.0/" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>

    <!-- 在这里将项目(工程)的所有资源文件包含进来,将相对与src路径的资源文件的路径以及文件名包含进来

设置工程的总体性能,根据名称来设置

cacheModelsEnabled全局控制缓存

enhancementEnabled全局控制运行时字节码增强,优化javabean的属性性

lazyLoadingEnabled  全局性的禁用延迟加载

maxRequests同时执行sql语句的最大线程数,通常大小maxTransactions10倍,并且总是大于maxTransactionsmaxSessions的总和。

减小这个值能够提高性能

useStatementNamespaces="true"的情况下,Statement调用需追加命名空间,如:sqlMap.update("User.updateUser",user); 
否则直接通过Statement名称调用即可,如: sqlMap.update("updateUser",user); 但请注意此时需要保证所有映射文件中,Statement定义无重名

maxTransactions<maxSessions=<maxRequests-->

    <settings  cacheModelsEnabled="true"
              enhancementEnabled="true"
              lazyLoadingEnabled="true"
              errorTracingEnabled="true"
              maxRequests="32"
              maxSessions="10"
              maxTransactions="5"
              useStatementNamespaces="true"  />

      

      <!-- type指定事务管理器:JDBC,JTA,EXTERNAL,三者的区别后面再讲到
        type值由:SIMPLE,DBCP,JNDI三者的使用后面再讲    -->

      <transactionManager type="JDBC"> // 指定事务管理机制
        <dataSource type="SIMPLE"> //SIMPLE 指定 datasource 使用 iBates 内置数据库连接池
            <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 -->
    <sqlMap resource="sqlmaps/common/attachFile.xml" />
    <sqlMap resource="sqlmaps/common/common.xml" />
    <sqlMap resource="sqlmaps/common/user.xml" />

    <sqlMap resource="sqlmaps/common/commonHouseInfo.xml" />


 <!--<sqlMap resource="sqlmaps/common/MyProfile.xml"/>-->

<!-- 可以去除 -->

<!--  <sqlMap resource="sqlmaps/common/houseInfoBaseResult.xml" />-->


</sqlMapConfig>


Sqlmap文件:

 dynamic 会自动去除第一个prepend="and中的内容(这里为and)从而方便一些操作;

isNotNull 参数不为null时有效
isNotEmpty
参数不为null“”时有效
isPropertyAvailable
如果参数有使用(paramMap中有这个key,不管value是null还是“”)则查询条件有效
prepend  <isNotNull prepend="and"property="firstName" >
生成的语句不会有多余的and,因为dynamic有一个隐藏的属性:removeFirstPrepend="true",所以一般要写上prepend="and",需要的时候它会自动去掉

 



猜你喜欢

转载自blog.csdn.net/cb905259982/article/details/73250299
今日推荐