1.控制台报错
org.apache.ibatis.exceptions.PersistenceException:
### Error building SqlSession.
### The error may exist in mapper/UsersMapper.xml
### The error occurred while processing mapper_resultMap[stuMap]
我查看了我的代码
<?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应匹配对应的Mapper接口的全类名 -->
<mapper namespace="mybatis0506.mapper.UsersMapper">
<!-- 插入语句,parameterType指定参数类型,应与Users类的完整包名对应,且前面不应有空格 -->
<insert id="addUser" parameterType="mybatis0506.pojo.Users">
insert into users(uname, uage) VALUES (#{uname},#{uage})
</insert>
<!-- 查询语句,resultType指定返回类型,应与Users类的完整包名对应,且前面不应有空格 -->
<select id="findAllUser" resultType="mybatis0506.pojo.Users">
select * from users order by uid desc
</select>
<update id="updateUsers" parameterType="mybatis0506.pojo.Users">
update users set uname = #{uname},uage=#{uage}
where uid = #{uid}
</update>
<select id="findUsersByID" parameterType="int"
resultType="mybatis0506.pojo.Users">
select * from users where uid=#{uid}
</select>
<!-- 我的更新语句-->
<update id="updateUsers" parameterType="mybatis0506.pojo.Users">
update t_student set sname=#{name},sage=#{age}
where sname=#{name}
</update>
</mapper>
<!-- 注意:删除了原本多余的XML结尾注释,确保XML结构正确 -->
<!--<?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为映射的根节点–>-->
<!--<!– mapper为映射的根节点,namespace指定Dao接口的完整类名-->
<!--mybatis会依据这个接口动态创建一个实现类去实现这个接口,-->
<!--而这个实现类是一个Mapper对象–>-->
<!--<mapper namespace="mybatis0506.mapper.UsersMapper">-->
<!--<insert id="addUser" parameterType=" mybatis0506.pojo.Users">-->
<!-- insert into users( uname, uage) VALUES (#{uname},#{uage})-->
<!--</insert>-->
<!--<select id="findAllUser"-->
<!-- -->
<!-- resultType="mybatis0506.pojo.Users">-->
<!-- select * from users order by uid desc-->
<!--</select>-->
<!--</mapper>-->
发现我有两个id写成一样的了,此处不允许一样的违背了MyBatis 中每个映射语句的 id
必须唯一的规则(进行修改,将第二个id变成UserStudent)
<?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应匹配对应的Mapper接口的全类名 -->
<mapper namespace="mybatis0506.mapper.UsersMapper">
<!-- 插入语句,parameterType指定参数类型,应与Users类的完整包名对应,且前面不应有空格 -->
<insert id="addUser" parameterType="mybatis0506.pojo.Users">
insert into users(uname, uage) VALUES (#{uname},#{uage})
</insert>
<!-- 查询语句,resultType指定返回类型,应与Users类的完整包名对应,且前面不应有空格 -->
<select id="findAllUser" resultType="mybatis0506.pojo.Users">
select * from users order by uid desc
</select>
<update id="updateUsers" parameterType="mybatis0506.pojo.Users">
update users set uname = #{uname},uage=#{uage}
where uid = #{uid}
</update>
<select id="findUsersByID" parameterType="int"
resultType="mybatis0506.pojo.Users">
select * from users where uid=#{uid}
</select>
<!-- 我的更新语句-->
<update id="updateStudent" parameterType="mybatis0506.pojo.Users">
update t_student set sname=#{name},sage=#{age}
where sname=#{name}
</update>
</mapper>
<!-- 注意:删除了原本多余的XML结尾注释,确保XML结构正确 -->
<!--<?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为映射的根节点–>-->
<!--<!– mapper为映射的根节点,namespace指定Dao接口的完整类名-->
<!--mybatis会依据这个接口动态创建一个实现类去实现这个接口,-->
<!--而这个实现类是一个Mapper对象–>-->
<!--<mapper namespace="mybatis0506.mapper.UsersMapper">-->
<!--<insert id="addUser" parameterType=" mybatis0506.pojo.Users">-->
<!-- insert into users( uname, uage) VALUES (#{uname},#{uage})-->
<!--</insert>-->
<!--<select id="findAllUser"-->
<!-- -->
<!-- resultType="mybatis0506.pojo.Users">-->
<!-- select * from users order by uid desc-->
<!--</select>-->
<!--</mapper>-->
代码正常输出,不报错。