使用SqlMapClient后sql的写法(待完善)

使用SqlMapClient后写mapper的方法不同于普通mybatis的写法。在工作中遇到的一些问题先一一列出,虽然目前不知是为什么一定要这样写!

在spring中使用SqlMapClientTemplate操作数据库方法:http://blog.csdn.net/wangxy799/article/details/50553274

如WAYBILL.mapper文件:

<?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="WAYBILL"> 
<span style="white-space:pre">	</span><!-- 内容 -->
	
</sqlMap>
**注意此处的命名空间,不再是mybatis那样写的是DAO接口


定义别名(这在mybatis映射文件中是不能写的):

<span style="font-size:12px;"><?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="WAYBILL"> 
	
	<!-- 给实体类定义别名 -->
	<typeAlias alias="waybillModel" type="org.express.model.WaybillModel" />
	<typeAlias alias="Detail" type="org.express.model.Detail" />
	<typeAlias alias="ExpressInfo" type="org.express.model.ExpressInfo" />
	
</sqlMap></span>


插入数据:

<insert id="save" parameterClass="waybillModel">
	INSERT INTO WAYBILL
	<dynamic prepend="(" close=")">
		<isNotNull property="waybillNo" prepend=",">waybillNo</isNotNull>
		<isNotNull property="transferNo" prepend=",">transferNo</isNotNull>
		<isNotNull property="country" prepend=",">country</isNotNull>
		<isNotNull property="channelCode" prepend=",">channelCode</isNotNull>
		<isNotNull property="lastState" prepend=",">lastState</isNotNull>
		<isNotNull property="checkInDate" prepend=",">checkInDate</isNotNull>
		<isNotNull property="checkOutDate" prepend=",">checkOutDate</isNotNull>
		<isNotNull property="remark" prepend=",">remark</isNotNull>
	</dynamic> 
	<dynamic prepend="values (" close=")">
		<isNotNull property="waybillNo" prepend=",">#waybillNo#</isNotNull>
		<isNotNull property="transferNo" prepend=",">#transferNo#</isNotNull>
		<isNotNull property="country" prepend=",">#country#</isNotNull>
		<isNotNull property="channelCode" prepend=",">#channelCode#</isNotNull>
		<isNotNull property="lastState" prepend=",">#lastState#</isNotNull>
		<isNotNull property="checkInDate" prepend=",">#checkInDate#</isNotNull>
		<isNotNull property="checkOutDate" prepend=",">#checkOutDate#</isNotNull>
		<isNotNull property="remark" prepend=",">#remark#</isNotNull>
		</dynamic>
</insert> 
**在这里写<if test=" ***!=null and ***!=''">貌似不行。


更新数据:

<update id="saveDetail1" parameterClass="Detail">
	UPDATE WAYBILL 
		<dynamic prepend="SET" close=" ">
			<isNotNull property="compTyp" prepend=",">compTyp=#compTyp#</isNotNull>
			<isNotNull property="state" prepend=",">state=#state#</isNotNull>
		</dynamic>
	WHERE transferNo=#transferNo#;
</update>
**之前将set直接写出来的,是不对的,如下:

<!-- 错误的写法 -->
<update id="saveDetail1" parameterClass="Detail">
	UPDATE WAYBILL SET
		<isNotNull property="compTyp" prepend=",">compTyp=#compTyp#</isNotNull>
		<isNotNull property="state" prepend=",">state=#state#</isNotNull>
	WHERE transferNo=#transferNo#;
</update>












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值