最近在练习 MyBatis-Plus 时遇到一些问题,这里进行下总结。
先上一些测试代码:
controller:
service:
mapper:
后通过postman/eolink 测试报错:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.woniuxy.car.mapper.CarBusinessMapper.selectList
无效的绑定语句,找不到CarBusinessMapper.selectList方法。
后续查了一些博客资料,结合官网示例,发现需要在BaseMapper接口上加上sql 映射的实例:
加上泛型后测试报错改变,该问题已解决。
但是出现了新的报错:
Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'tour.car_business_entity' doesn't exist
bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'tour.car_business_entity' doesn't exist",
观察报错信息,应该是MyBatis-Plus 会自动根据实体类名来对应查找数据库的表名,实体类上可加上注解:@TableName(value ="car_business")
修改后的实体类:
再次测试查询方法已成功:
测试 Mybatis-Plus 新增方法(insert)时遇到问题:
nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.woniuxy.car.entity.CarBusinessEntity' with value '1470643261222727681' Cause: java.lang.IllegalArgumentException: argument type mismatch] with root cause
java.lang.IllegalArgumentException: argument type mismatch
查询官网注解,发现需要在实体类上增加注解:@TableId(value="id",type =IdType.AUTO),指明主键id自增属性。
增加注解后测试通过: