错误发生场景:在用mybatis3.4.1给数据库插入数据返回主键时报了这个错误
检查1:确定Mapper接口和xml映射文件在一个包下配置在mybatis全局配置中
检查2:全局配置文件中即开启驼峰命名法(数据库字段last_name在实体对象中是lastName)
检查3:Mapper.xml映射文件对应接口方法
检查4:确定实体类和数据库字段类型和驼峰对应,实体类类型对应提供get、set方法;sql在数据库无错误
检查5:mapper.xml中sql传入没错误#{属性名}
然后出现了org.apache.ibatis.reflection.ReflectionException: There is no getter for property named '属性'in classxxx
是不是很无语,通宵了一晚上,于是在考虑是否mybatis版本的问题时下载新版本前。。。
发现了接口的xml映射文件中是我的注释作祟,尽量不要出现特殊符号,mybatis加载机制不智能
<insert id="addEmp" useGeneratedKeys="true" keyProperty="id">
insert into tbl_Employee(ID,LAST_NAME,EMAIL,GENDER) values(#{id},#{lastName},#{email},#{gender});/*sql语句插值用#{对象的属性}*/
</insert>