<!-- 跟普通的insert沒有什么不同的地方 ,主要用來跟下面的批量插入做對比。-->
<insert id="insert" parameterType="com.soft.mybatis.model.Customer">
<!-- 跟自增主鍵方式相比,這里的不同之處只有兩點
1 insert語句需要寫id字段了,并且 values里面也不能省略
2 selectKey 的order屬性需要寫成BEFORE 因為這樣才能將生成的uuid主鍵放入到model中,
這樣后面的insert的values里面的id才不會獲取為空
跟自增主鍵相比就這點區別,當然了這里的獲取主鍵id的方式為 select uuid()
當然也可以另寫別生成函數。-->
<selectKey keyProperty="id" order="BEFORE" resultType="String">
select uuid()
</selectKey>
insert into t_customer (id,c_name,c_sex,c_ceroNo,c_ceroType,c_age)
values (#{id},#{name},#{sex},#{ceroNo},#{ceroType},#{age})
</insert>
<!-- 批量插入, -->
<insert id="batchInsert" parameterType="java.util.Map">
<!-- 這里只做演示用,真正項目中不會寫的這么簡單。 -->
insert into
t_customer (id,c_name,c_sex,c_ceroNo,c_ceroType,c_age)
values
<!-- foreach mybatis循環集合用的
collection="list" 接收的map集合中的key 用以循環key對應的屬性
separator="," 表示每次循環完畢,在sql后面放一個逗號
item="cus" 每次循環的實體對象 名稱隨意-->
<foreach collection="list" separator="," item="cus">
<!-- 組裝values對象,因為這張表的主鍵為非自增主鍵,所以這里 (select uuid()) 用于生成id的值-->
((select uuid()),#{cus.name},#{cus.sex},#{cus.ceroNo},#{cus.ceroType},#{cus.age})
</foreach>
</insert>