ibatis配置方法
2015-10-08 19:04
246 查看
sqlmap配置
总配置文件sqlmap-config.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="false" enhancementEnabled="false"
lazyLoadingEnabled="false" maxRequests="3000" maxSessions="3000"
maxTransactions="3000" useStatementNamespaces="false" />
<sqlMap resource="com/taobao/cun/scc/biz/sqlmap/base/sqlmap_common.xml"/>
<sqlMap resource="com/taobao/cun/scc/biz/sqlmap/base/sqlmap_base_cuntao_logistics_order.xml"/>
</sqlMapConfig>:
其中,
cacheModelsEnabled:对在此配置文件下的所有cache 进行全局性开/关设置。
enhancementEnabled:全局性地启用或禁用运行时字节码增强,以优化访 问 Java Bean 属性的性能,同时优化延迟加载的性能。
lazyLoadingEnabled:全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载。
maxRequests,maxSessions,maxTransactions:同时执行 SQL 语句的最大线程数,同一时间内活动的最大session数,同时进入 SqlMapClient.startTransaction()的最大线程 数。通常三者关系为<<<。
useStatementNamespaces:必须使用全限定名来引用 mapped statement。
<sqlMap 标签下为sql语句的文件。
具体的sqlmap文件
sql语句用辰辉的自动生成工具,优点:0.全自动生成(Do,Dao,DaoImp,Sqlmap文件),可以轻松应对表结构变化。将通用的字段提取成基类(id,creator,GMTcreate..),
1.Do层中,每个属性均有change布尔值来保证只更新用过set方法的参数。
2.将通用操作(select所有,动态参数,orderby,limit)提取成common,通过include标签嵌入sql语句,代码会非常简洁。
limit用来分页的防止注入写法:$pageOrderList[].orderColumn:METADATA$ $pageOrderList[].orderDir:SQLKEYWORD$
3.所有操作都<![CDATA[ ]]> 保证可以使用><等特殊字符。
例子
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="CuntaoLogisticsOrder">
<typeAlias alias="CuntaoLogisticsOrder" type="com.taobao.cun.scc.biz.logisticsorder.dataobject.CuntaoLogisticsOrderDO"/>
<sql id="CuntaoLogisticsOrder.COMMON_SELECT">
<![CDATA[
SELECT
id as id
, gmt_create as gmtCreate
, creator as creator
, gmt_modified as gmtModified
, modifier as modifier
, is_deleted as isDeleted
, purchase_order_id as purchaseOrderId
, consignee_name as consigneeName
, consignee_address as consigneeAddress
, consignee_post as consigneePost
, consignee_phone as consigneePhone
, consignee_mobile_phone as consigneeMobilePhone
, consignee_province as consigneeProvince
, consignee_city as consigneeCity
, consignee_county as consigneeCounty
, consignee_town as consigneeTown
, memo as memo
, version as version
, out_logistics_id as outLogisticsId
, logistics_status as logisticsStatus
, consign_time as consignTime
from cuntao_logistics_order where is_deleted = 'n'
]]>
</sql>
<sql id="CuntaoLogisticsOrder.COMMON_CONDITION">
<isNotNull property="id" prepend="and">
id=#id#
</isNotNull>
<isNotNull property="gmtCreate" prepend="and">
gmt_create=#gmtCreate#
</isNotNull>
<isNotNull property="creator" prepend="and">
creator=#creator#
</isNotNull>
<isNotNull property="gmtModified" prepend="and">
gmt_modified=#gmtModified#
</isNotNull>
<isNotNull property="modifier" prepend="and">
modifier=#modifier#
</isNotNull>
<isNotNull property="isDeleted" prepend="and">
is_deleted=#isDeleted#
</isNotNull>
<isNotNull property="purchaseOrderId" prepend="and">
purchase_order_id=#purchaseOrderId#
</isNotNull>
<isNotNull property="consigneeName" prepend="and">
consignee_name=#consigneeName#
</isNotNull>
<isNotNull property="consigneeAddress" prepend="and">
consignee_address=#consigneeAddress#
</isNotNull>
<isNotNull property="consigneePost" prepend="and">
consignee_post=#consigneePost#
</isNotNull>
<isNotNull property="consigneePhone" prepend="and">
consignee_phone=#consigneePhone#
</isNotNull>
<isNotNull property="consigneeMobilePhone" prepend="and">
consignee_mobile_phone=#consigneeMobilePhone#
</isNotNull>
<isNotNull property="consigneeProvince" prepend="and">
consignee_province=#consigneeProvince#
</isNotNull>
<isNotNull property="consigneeCity" prepend="and">
consignee_city=#consigneeCity#
</isNotNull>
<isNotNull property="consigneeCounty" prepend="and">
consignee_county=#consigneeCounty#
</isNotNull>
<isNotNull property="consigneeTown" prepend="and">
consignee_town=#consigneeTown#
</isNotNull>
<isNotNull property="memo" prepend="and">
memo=#memo#
</isNotNull>
<isNotNull property="version" prepend="and">
version=#version#
</isNotNull>
<isNotNull property="outLogisticsId" prepend="and">
out_logistics_id=#outLogisticsId#
</isNotNull>
<isNotNull property="logisticsStatus" prepend="and">
logistics_status=#logisticsStatus#
</isNotNull>
<isNotNull property="consignTime" prepend="and">
consign_time=#consignTime#
</isNotNull>
</sql>
<sql id="CUNTAO_PAGING_COMMON">
<dynamic>
<isNotNull property="pageSize">
<![CDATA[
limit #pageStart# , #pageSize#
]]>
</isNotNull>
</dynamic>
</sql>
<sql id="CUNTAO_ORDER">
<dynamic>
<isNotNull property="pageOrderList" prepend="ORDER BY ">
<iterate property="pageOrderList" conjunction=",">
<![CDATA[
$pageOrderList[].orderColumn:METADATA$ $pageOrderList[].orderDir:SQLKEYWORD$
]]>
</iterate>
</isNotNull>
</dynamic>
</sql>
<select id="CuntaoLogisticsOrder.SELECT" resultClass="CuntaoLogisticsOrder" parameterClass="com.taobao.cun.
4000
scc.biz.logisticsorder.dataobject.CuntaoLogisticsOrderDO" >
<include refid="CuntaoLogisticsOrder.COMMON_SELECT"/>
<include refid="CuntaoLogisticsOrder.COMMON_CONDITION"/>
<include refid="CUNTAO_ORDER"/>
<include refid="CUNTAO_PAGING_COMMON"/>
</select>
</sqlMap>
相关文章推荐
- Android 5.1 Contacts源码分析(四):Contacts模块ListView Adapter结构
- 217.Contains Duplicate
- IOS读取图片(转载)
- Android 开发第六弹:简易时钟(计时器)
- 阅读《代码大全》后的读书笔记(第二部分)
- 《Hadoop: The Definitive Guide》读书笔记 -- Chapter 2 MapReduce
- mac intellij IDEA快捷键
- 类和对象2
- 260.Single Number III
- 10-6总结
- 2015 10 07
- MVC设计模式
- bzoj4034: [HAOI2015]T2
- 191.Number of 1 Bits
- Haar特征与积分图
- ef 吐糟
- Java基础知识强化之IO流笔记28:BufferedOutputStream / BufferedInputStream(字节缓冲区流) 之BufferedOutputStream写出数据
- 类和对象
- ACM实验室换新颜
- 强大的移动web前端框架zeptojs