WHY
初学SpringBoot的小白,整合mybatis写接口,遇到不少坑,这一篇是插入数据遇到的坑。不过说到底还是自己基础太差,还没学会站就要跑,所以算是在项目上一步步的学习成长。
TODO
插入数据之非列表
先上代码
<insert id="insert">
insert into tb_student
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="stuId != null and stuId != ''">stu_id,</if>
<if test="stuName != null and stuName != ''">stu_name,</if>
<if test="stuAge != null and stuAge != ''">stu_age,</if>
<if test="stuSex != null and stuSex != ''">stu_sex,</if>
<if test="stuClasses != null and stuClasses != ''">stu_classes,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stuId != null and stuId != ''">#{stuId},</if>
<if test="stuName != null and stuName != ''">#{stuName},</if>
<if test="stuAge != null and stuAge != ''">#{stuAge},</if>
<if test="stuSex != null and stuSex != ''">#{stuSex},</if>
<if test="stuClasses != null and stuClasses != ''">#{stuClasses},</if>
</trim>
</insert>
语法说明
prefix:在trim标签内sql语句加上前缀;
suffix:在trim标签内sql语句加上后缀;
suffixOverrides:去除多余的后缀内容。
这个格式就类似我们在写比较简单的插入语句代码,只不过多加了一个非空的判断。
<insert id = "insert">
insert into tb_student(
stu_id,
stu_name,
stu_age,
stu_sex,
stu_classes)
values(
#{stuId},
#{stuName},
#{stuAge},
#{stuSex},
#{stuClasses})
</insert>
插入数据之列表
<insert id="insertList" parameterType="java.util.List">
insert into tb_student(
stu_id,
stu_name,
stu_age,
stu_sex,
stu_classes)
values
<foreach collection="studentList" item="item" separator=",">
(#{item.stuId},
#{item.stuName},
#{item.stuAge},
#{item.stuSex},
#{item.stuClasses},)
</foreach>
</insert>
使用 foreach 进行遍历
贴上官方文档中的解释——
foreach 元素的功能非常强大,它允许你指定一个集合,声明可以在元素体内使用的集合项(item)和索引(index)变量。它也允许你指定开头与结尾的字符串以及集合项迭代之间的分隔符。这个元素也不会错误地添加多余的分隔符,看它多智能!
提示:你可以将任何可迭代对象(如 List、Set 等)、Map 对象或者数组对象作为集合参数传递给 foreach。当使用可迭代对象或者数组时,index 是当前迭代的序号,item 的值是本次迭代获取到的元素。当使用 Map 对象(或者 Map.Entry 对象的集合)时,index 是键,item 是值。
写在最后
最近写的一个接口文件,赶时间,加上己对业务不熟悉,Spring Boot用的也不熟练,很多东西一知半解,导致在测试时发现很多问题,花费很多时间。因此也意识到测试的重要性,免去了后续很多麻烦。
这篇博客主要记录了初学者在SpringBoot项目中整合Mybatis进行数据插入时遇到的问题和解决方法,包括非列表数据和列表数据的插入。通过示例代码展示了如何处理非空判断以及使用foreach标签进行集合遍历插入。文章强调了测试在开发过程中的重要性,以避免后期出现的诸多问题。
8001

被折叠的 条评论
为什么被折叠?



