使用Mybatis遇到的there is no getter 异常

在使用mybatis的时候有时候会遇到一个问题就是明明参数是正确的,但是还是会提示There is no getter XXX这个异常,但是一般的解决办法是在mapper里面添加@Param注解来完成是别的,那么为什么会遇到这个问题呢?

以下为举例代码:

Mapper层代码

1
2
3
4
5
public interface Pro1_Mapper {

Pro1_Studnet insertStu(Pro1_Studnet pro1_studnet);

}

实体类代码

阅读更多

在Mybatis中使用bind进行枚举和模糊查询

首先在网上查询了下关于bind得用法,网上大多数都是bind和模糊查询绑定在一起,但是在这里的话其实bind和枚举一起结合起来使用会有很大的便利,比如一个班级的名称和班级的ID,需要根据班级的ID查询出班级的姓名的话,一般在mybatis中的sql语句是select * from table where class_id =#{class_id} 但是这样就有一个问题,假设学校现在系统升级,每一个班级的ID都变了,这时候需要到处修改mybatis的参数,将其修改成为正确的ID,那么这是一个浩大的工程,同时如果以后再需要改的话,会比较麻烦。处理这个问题,这个时候有如下方法:

  1. 枚举和typehandle组合解决问题;
  2. 枚举和bind一起组合解决;
  3. 暂时没想到

##枚举和bind组合解决:
新建一个实体类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class clazzEntity {
private String clazz_name;
private int clazz_id;

public clazzEntity(String clazz_name, int clazz_id) {
this.clazz_name = clazz_name;
this.clazz_id = clazz_id;
}

public String getClazz_name() {
return clazz_name;
}

public void setClazz_name(String clazz_name) {
this.clazz_name = clazz_name;
}

public int getClazz_id() {
return clazz_id;
}

public void setClazz_id(int clazz_id) {
this.clazz_id = clazz_id;
}
}

新建一个枚举类:

阅读更多

在Mybatis中使用association进行一对一查询

在今天主要是测试了下在mybatis中使用两种方式来进行一对一查询。在mybatis中进行普通查询的话肯定是一个JavaBean对应一个Sql语句,但是当需要进行两表或者多表之间一对一的查询的时候就需要使用mybatis中的association进行一对一查询,而association的设置一般有两种方式:

##基础类:
员工类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class People implements Serializable {
private int people_id;
private String people_card;
private Role role;

public int getPeople_id() {
return people_id;
}

public void setPeople_id(int people_id) {
this.people_id = people_id;
}

public String getPeople_card() {
return people_card;
}

public void setPeople_card(String people_card) {
this.people_card = people_card;
}

public Role getRole() {
return role;
}

public void setRole(Role role) {
this.role = role;
}
}

权限类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Role  implements Serializable {
private int myrole_id;
private String role_name;
private RoleDetail roleDetail;

public RoleDetail getRoleDetail() {
return roleDetail;
}

public void setRoleDetail(RoleDetail roleDetail) {
this.roleDetail = roleDetail;
}

public int getMyrole_id() {
return myrole_id;
}

public void setMyrole_id(int myrole_id) {
this.myrole_id = myrole_id;
}

public String getRole_name() {
return role_name;
}

public void setRole_name(String role_name) {
this.role_name = role_name;
}
}
阅读更多