org.apache.ibatis.exceptions.PersistenceException:
这是翻译过的错误
org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [0, 1, param1, param2]
org.apache.ibatis.exceptions.PersistenceException:
更新数据库出错。原因:org.apache.ibatis.binding。BindingException:没有找到参数“id”。可用参数为[0,1,param1, param2]
错误可能涉及com.demo3.dao.Student3Dao.save-Inline
设置参数时发生错误
mapper.xml
<mapper namespace="com.demo3.dao.Student3Dao">
<insert id="save" parameterType="com.demo3.bean.Student3">
insert into student3 values (#{id},#{name},#{age},#{gender},#{birthday})
</insert>
<select id="getAll" resultMap="student3">
select * from student3
</select>
<resultMap type="com.demo3.bean.Student3" id="student3">
<result column="sname" property="name"/>
<result column="sage" property="age"/>
<result column="sgender" property="gender"/>
</resultMap>
</mapper>
这是练飞mybatis动态代理的时候出的错,前面demo1、demo2没有便用动态理时一切正常,demo3查询OK更新数据库异常找不到参数id.
求各位大神找下出错点和解决方案!
动态代理不需要再手动添加SqlSession 对象
将Student3Dao中的save(SqlSession sqlSession,Student3 stu)
改为save(Student3 stu)即可
<resultMap type="com.demo3.bean.Student3" id="student3">
<result column="sname" property="name"/>
<result column="sage" property="age"/>
<result column="sgender" property="gender"/>
</resultMap>
可能出错的地方--> 结果集中并没有指定主键字段!!!
尝试添加一下如下的, 或许能解决你的问题
<id column="表的主键字段,或者可以为查询语句中的别名字段" jdbcType="字段类型" property="映射pojo对象的主键属性" />
表的id 与实体类id相同不用写