XML中sql采用if…else的写法
简介:实现简单地批量写入和使用标签的动态sql。不说废话,直接上代码
一.实现简单地批量写入。
<sql id="Base_Column_List">
id, device_id, device_name, user_id, user_name, location_id, location_name, speech_content,
speech_type, numbers, create_date, basePath
<insert id="inserts" parameterType="com.factory.common.bean.Speech">
REPLACE into speech
(<include refid="Base_Column_List"/>)
values
<foreach collection="speeches" item="item" index="index" separator=",">
(
#{item.id,jdbcType=VARCHAR},
#{item.deviceId,jdbcType=VARCHAR},
#{item.deviceName,jdbcType=VARCHAR},
#{item.userId,jdbcType=INTEGER},
#{item.userName,jdbcType=VARCHAR},
#{item.locationId,jdbcType=VARCHAR},
#{item.locationName,jdbcType=VARCHAR},
#{item.speechContent,jdbcType=VARCHAR},
#{item.speechType,jdbcType=VARCHAR},
#{item.numbers,jdbcType=INTEGER},
#{item.createDate,jdbcType=TIMESTAMP},
#{item.basePath,jdbcType=VARCHAR}
)
</foreach>
</insert>
**二、实现简单地if。。else的动态sql方式。
简介:主要采用标签实现<if>, <where>,<choose>,<when>**
SELECT s.`create_date` 'createDate', s.`basePath` 'basePath' FROM `speech` s AND s.`create_date` >= #{beginDate} AND s.`create_date` <= #{endDate} , AND s.`location_id` = #{locationId,jdbcType=VARCHAR} ORDER BY s.`create_date` DESC