把 @Insert("INSERT INTO student (id, name, age) VALUES (#{id}, #{name}, #{age})") void insertStudent(Student student); @Insert("<script>" + "INSERT INTO student (id, name, age) VALUES " + "<foreach collection=\"list\" item=\"item\" separator=\",\">" + "(#{item.id}, #{item.name}, #{item.age})" + "</foreach>" + "</script>") void insertStudentList(List<Student> studentList);写成mapper.xml的形式
时间: 2023-07-05 21:19:01 浏览: 293
可以将上面的两个方法写成对应的mapper.xml文件,如下所示:
```xml
<!-- StudentMapper.xml -->
<mapper namespace="com.example.demo.mapper.StudentMapper">
<insert id="insertStudent" parameterType="com.example.demo.entity.Student">
INSERT INTO student (id, name, age) VALUES (#{id}, #{name}, #{age})
</insert>
<insert id="insertStudentList" parameterType="java.util.List">
<script>
INSERT INTO student (id, name, age) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.name}, #{item.age})
</foreach>
</script>
</insert>
</mapper>
```
在mapper.xml文件中,我们需要指定namespace,对应于Mapper接口的全限定名。同时,在insert标签中,我们需要指定id和parameterType属性,分别表示SQL语句的ID和参数类型。在第二个insert标签中,我们使用了MyBatis提供的<script>标签,将动态SQL语句写在其中,并使用了foreach标签,将List中的每个元素都插入到数据库中。需要注意的是,此时的参数类型为java.util.List,因此在SQL语句中使用item.id、item.name和item.age来获取List中每个元素的属性值。
最后,在配置文件中添加对应的mapper.xml文件,即可在应用启动时将SQL语句注册到MyBatis中。
阅读全文