1、使用配置文件方式时,配置文件的文件名要与DAO接口的文件名保持一致,且需要修改xml文件中的namespace的值
2、向表中新增一条记录,并返回新数据的主键ID值,需要配置两个属性,useGeneratedKeys=“true”,keyProperty=“主键名”
<insert id="add" parameterType="com.itheima.pojo.CheckGroup" useGeneratedKeys="true" keyProperty="id">
insert into t_checkgroup(code,name,helpCode,sex,remark,attention) values(#{
code},#{
name},#{
helpCode},#{
sex},#{
remark},#{
attention})
</insert>
3、向中间表插入多条记录时,如果遍历数据集合多次调用插入数据的dao方法,数据库压力较大,可先将中间表数据拼接成map集合,然后通过语句拼接的方式实现一条语句向表中插入多条记录
sql语句样例:insert into table(column1,column2) values(value1,value2)(value3,value4)
List<Map> list=new ArrayList<>();
for (Integer checkgroupId : checkgroupIds) {
Map map=new HashMap();
map.put("setmeal_id",setmeal.getId());
map.put("checkgroup_id",checkgroupId);
list.add(map);
}
setmealMapper.addByOneTime(list);
<insert id="addByOneTime" parameterType="list">
insert into t_setmeal_checkgroup(setmeal_id,checkgroup_id) values
<foreach collection="list" separator="," item="item">
(#{
item.setmeal_id},#{
item.checkgroup_id})
</foreach>
</insert>
4、update表中记录时,最好对新对象进行字段判断,判断数据是否为null
<update id="update" parameterType="com.itheima.pojo.CheckGroup">
update t_checkgroup
<set>
<if test="code!=null">
code = #{
code},
</if>
<if test="name != null">
name = #{
name},
</if>
<if test="helpCode != null">
helpCode = #{
helpCode},
</if>
<if test="sex != null"