这可以说是个很恼人的问题了
今天写注册方法的时候遇到了这个问题,搞得我一下午都没弄好,一直到现在,把我的类名去掉,居然就解决了,真是哭笑不得
问题的产生
@Insert("insert into users (`username`,`password`,`name`,`roles`,`create`) " +
" values( #{user.username} ,#{user.password} , #{user.name} ,#{user.roles} ,#{user.create} )")
public void registerUser(@Param("user") user);
这个问题事实上根本不是什么大问题,但是我的代码错误太多了,所以导致了我没有通过任何一个方法一次性解决问题,使我没有意识到问题的解决方法早已被我用了一个遍。
我当时是把网上流传的两种方法挨个试一遍,试一个不行就把代码恢复原样再试下一个,结果搞半天也没好,因为我是多种问题杂合了;
1.首先就是字段和类属性的类型不对应,这个我直接把属性的类型改成一样的了
2.然后改完他还报一样的错,我接着思考,死马当活马医把 user.name的类前缀user给去掉了,还把Param注解也去掉,结果成功了。
//修改后的代码
@Insert("insert into users (`username`,`password`,`name`,`roles`,`create`) " +
" values( #{username} ,#{password} , #{name} ,#{roles} ,#{create} )")
public void registerUser(user);
其根本原因应该是mybatis的依赖版本问题,有些版本使用类名前缀,有些则不使用,才导致了这个问题