比较标准的sqlMap配置

// 比较标准的sqlMap配置,省略sql-map-config.xml.. CebitCorpInfo.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="CebitCorpInfo"> <typeAlias alias="supply" type="com.biz518.product.domain.Supply" />     <resultMap id="info_map" class="com.biz.cebit.domain.CebitCorpInfo">         <result property="id" column="id"/>         <result property="title" column="title"/>         <result property="content" column="content" jdbcType="CLOB" javaType = "java.lang.String"/>         <result property="issdate" column="issdate"/>         <result property="corpid" column="corpid"/>     </resultMap>     <select id="getCebitCorpInfoById"parameterClass="java.lang.Integer" resultMap="info_map">         select * from cebitcorpinfo where id = #value#     </select>         <select id="getCebitCorpInfoListByCorp" parameterClass="java.lang.Integer"         resultClass="com.biz.cebit.domain.CebitCorpInfo">         select * from cebitcorpinfo where corpid = #value#     </select>     <update id="updateCebitCorpInfo" parameterClass="com.biz.cebit.domain.CebitCorpInfo">         update cebitcorpinfo set             <isNotEqual prepend="" property="id" compareValue="0">                    id=#id#             </isNotEqual>             <isNotEmpty prepend="," property="title">                    title=#title#             </isNotEmpty>             <isNotEmpty prepend="," property="content">                    content=#content#             </isNotEmpty>             <isNotEqual prepend="," property="corpid" compareValue="0">                    corpid=#corpid#             </isNotEqual>             <isNotEmpty prepend="," property="issdate">                    issdate=#issdate#             </isNotEmpty>             <dynamic prepend="where">                 <isNotEqual prepend="" property="id" compareValue="0">                     id=#id#                 </isNotEqual>             </dynamic>     </update>         <delete id="delCebitCorpInfoById" parameterClass="java.lang.Integer">         delete from cebitcorpinfo where id = #value#     </delete>     <insert id="insertCebitCorpInfo" parameterClass="com.biz.cebit.domain.CebitCorpInfo">         <selectKey resultClass="int" keyProperty="id">             SELECT seq_cebitcorpinfo.NEXTVAL FROM DUAL         </selectKey>         insert into cebitcorpinfo(             < isNotEmpty  prepend="" property="id">                    id             </ isNotEmpty >             <isNotEmpty prepend="," property="title">                    title             </isNotEmpty>             <isNotEmpty prepend="," property="content">                    content             </isNotEmpty>             < isNotEmpty  prepend="," property="corpid">                    corpid             </ isNotEmpty >             <isNotEmpty prepend="," property="issdate">                    issdate             </isNotEmpty>                 )values(             < isNotEmpty  prepend="" property="id">                    #id#             </ isNotEmpty >             <isNotEmpty prepend="," property="title">                    #title#             </isNotEmpty>             <isNotEmpty prepend="," property="content">                    #content#             </isNotEmpty>             < isNotEmpty  prepend="," property="corpid">                    #corpid#             </ isNotEmpty >             <isNotEmpty prepend="," property="issdate">                    #issdate#             </isNotEmpty>         )         </insert>     </sqlMap> //  typeAlias 别名   //  parameterClass 是指传入的参数类型  // 当查询结果中有 CLOB 时,可以使用 resultMap 来处理 (一般正常情况直接用 resultClass = 某个VO类) //  <isNotEqual prepend="" property="id" compareValue="0">  id = #id# </isNotEqual>  意思是当这个 id (property) 不等于( isNotEqual ) 0 ( compareValue ) 的时候 , 添加  id = #id# ,  prepend是"预先"的意思,指在  id = #id# 前面需要加的 //  isNotEmpty 和  isNotEqual 类似,意思是 不为空时. 由于 id 是 int 类型,所以用了  isNotEqual //  <dynamic prepend="where"> 是指 当满足条件时,动态加一个 where //  <selectKey > 支持主键自动生成,keyProperty="id"定义了主键名称 <!-- Oracle --> <insert id="insertProduct-ORACLE" parameterClass="com.domain.Product"> <selectKey resultClass="int" keyProperty="id" >     SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL </selectKey> insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#) </insert> <!-- Microsoft SQL Server --> <insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product"> insert into PRODUCT (PRD_DESCRIPTION) values (#description#) <selectKey resultClass="int" keyProperty="id" > SELECT @@IDENTITY AS ID </selectKey> insert 对应数据库的 insert 操作,该操作返回本次操作插入记录的主键值。 select 对应数据库的 select 操作,该操作返回特定的 POJO 或 对象。 update 对应数据库的 update 操作,该操作返回被更新的记录个数。 delete 对应数据库的 delete 操作,该操作返回被删除的记录个数。 procedure 对应数据库存储过程。 statement 类型最为通用,可以代替以上所有的类型。但由于缺乏操作直观性故不推荐。 </insert> // 注意: 当数据库字段名和类中属性名不一样时,需要隐式转换下,DEMO如下: <statement id="getPoduct" resultClass="com.iatis.example.Product"> select PRD_ID as id, PRD_DESCRIPTION as description from PRODUCT where PRD_ID = #value# </statement>  动态 Mapped Statement 之 Iterate Iterate 的属性: prepend - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选) property - 类型为 java.util.List 的用于遍历的元素(必选) open - 整个遍历内容体开始的字符串,用于定义括号(可选) close -整个遍历内容体结束的字符串,用于定义括号(可选) conjunction - 每次遍历内容之间的字符串,用于定义 AND 或 OR(可选)  例子:  遍历类型为 java.util.List 的元素。 <iterate prepend="AND" property="uerNameList" open="(" close=")" onjunction="OR" >     username=#userNameList[]# </iterate> // 注意:使用<iterate>时,在List元素名后面包括方括号[]非常重要,方括号[]将对象标记为List,以防解析器简单地将List输出成String。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值