使用Mybatis遇到的there is no getter 异常
在使用mybatis的时候有时候会遇到一个问题就是明明参数是正确的,但是还是会提示There is no getter XXX
这个异常,但是一般的解决办法是在mapper里面添加@Param
注解来完成是别的,那么为什么会遇到这个问题呢?
以下为举例代码:
Mapper层代码
1 | public interface Pro1_Mapper { |
实体类代码
在使用mybatis的时候有时候会遇到一个问题就是明明参数是正确的,但是还是会提示There is no getter XXX
这个异常,但是一般的解决办法是在mapper里面添加@Param
注解来完成是别的,那么为什么会遇到这个问题呢?
以下为举例代码:
Mapper层代码
1 | public interface Pro1_Mapper { |
实体类代码
首先在网上查询了下关于bind得用法,网上大多数都是bind和模糊查询绑定在一起,但是在这里的话其实bind和枚举一起结合起来使用会有很大的便利,比如一个班级的名称和班级的ID,需要根据班级的ID查询出班级的姓名的话,一般在mybatis中的sql语句是select * from table where class_id =#{class_id}
但是这样就有一个问题,假设学校现在系统升级,每一个班级的ID都变了,这时候需要到处修改mybatis的参数,将其修改成为正确的ID,那么这是一个浩大的工程,同时如果以后再需要改的话,会比较麻烦。处理这个问题,这个时候有如下方法:
typehandle
组合解决问题;bind
一起组合解决;##枚举和bind组合解决:
新建一个实体类:
1 | public class clazzEntity { |
新建一个枚举类:
在今天主要是测试了下在mybatis中使用两种方式来进行一对一查询。在mybatis中进行普通查询的话肯定是一个JavaBean对应一个Sql语句,但是当需要进行两表或者多表之间一对一的查询的时候就需要使用mybatis中的association
进行一对一查询,而association
的设置一般有两种方式:
##基础类:
员工类:
1 | public class People implements Serializable { |
权限类:
1 | public class Role implements Serializable { |