最近在学习SpringMVC结合mybatis的使用,碰到了不少坑,在这里总结以下。
我使用的编辑器是IDEA,使用maven构建项目。
IDEA在打包时不会自动把src/main/java下的配置文件打包到resources中,所以会碰到Invalid bound statement (not found)错误,只需将配置文件写在resources中,或者在pom.xml中加入以下代码
这个问题解决后,接下来是使用foreach批量插入数据遇到的问题,代码如下
这段代码是可用的,需要注意几个地方: 1、在IDEA中编辑时,namespace写包名是会报Cannot find class的错误的,要把接口名也写上; 2、使用list进行批量插入时,collection不能写list,而是要写当前list类型参数的变量名。 以上只是我遇到的一些问题,大部分问题网上都能搜到,学习中遇到困难了不要放弃,希望我的总结能帮到大家。
<!-- 把src/main/java中的配置文件打包到resources中 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
这个问题解决后,接下来是使用foreach批量插入数据遇到的问题,代码如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.dao.UserMapper">
<insert id="saveList" useGeneratedKeys="true" parameterType="java.util.List">
insert into user(name, password)
values
<foreach collection="users" item="item" index="index" separator="," >
(#{item.name},#{item.password}})
</foreach>
</insert>
</mapper>
这段代码是可用的,需要注意几个地方: 1、在IDEA中编辑时,namespace写包名是会报Cannot find class的错误的,要把接口名也写上; 2、使用list进行批量插入时,collection不能写list,而是要写当前list类型参数的变量名。 以上只是我遇到的一些问题,大部分问题网上都能搜到,学习中遇到困难了不要放弃,希望我的总结能帮到大家。