错误:java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for...
原因:命名空间没写对,如果使用mapper,则<mapper namespace="com.sitech.mapper.StudentMapper">空间中一定要写上Mapper的名称,否则就会报错。
错误:Cannot add or update a child row: a foreign key constraint fails
原因:MySQL的检查机制,插入数据时当前表中的外键的值,在其对应的表中必须存在相应主键。否则报错
collection标签和association标签的区别:
比如同时有A.java和B.java两个类,A.java如下:
public class A{
private B b1;
private List<B> b2;
}
在映射b1属性时用association标签, 映射b2时用collection标签,分别是一对一,一对多的关系
session.commit();不能忘,他是用来保存数据库的,在每次插入等修改结束后,session.close();前,一定要有!否则无法存入数据库,即便程序没有错误出现。
Could not find result map java.util.Map错误:
错误写法
<select id="queryXXXCount" resultMap="java.util.Map" >
正确写法:
<select id="queryXXXCount" resultType="java.util.Map">
<select id="selectPassword" parameterType="String"
resultType="String">
SELECT Password FROM user WHERE UserName = #{Username} <!--mapper示例 这里面的#的值 是从前端对应name属性找到的值传递进来-->
</select>
Mapped Statements collection does not contain value for后面是什么类什么方法之类的:
错误原因有几种:
1、mapper.xml中没有加入namespace (多数情况出现在第一条)
2、mapper.xml中的方法和接口mapper的方法不对应
3、mapper.xml没有加入到mybatis-config.xml中(即总的配置文件),例外:配置了mapper文件的包路径的除外
4、mapper.xml文件名和所写的mapper名称不相同。