一、Customer
自动生成的Customer类是由数据库表与表之间的关系(一对一、一对多、多对多)来决定的,这样的话会方便我们开发过程中返回需要的数据,即是在原基础的扩展类,这些类一般是继承自原始的类的,看来mybatis官方也是支持这种写法的,试想一下,如果在原基础改的话,后来需求变了,再来改实体类是一件多么痛苦的事情。
实例:
1.这里准备了两张表,userlogin(用户登录)和role(角色)表
他们之间是一对一的关系,即一个用户只能拥有一个角色,user的外键为roel,对应role的roleID
2.这时用了mybaits自动插件就会生成UserLogin和UserLoginCustomer类
public class Userlogin {
private Integer userid;
private String username;
private String password;
private Integer role;
setter/getter
public class UserloginCustom extends Userlogin {
private Role role_ob;
setter/getter
这样如果需要查询用户的角色名
就可以写如下的Mapper resultMap:
<resultMap id="UserloginResultMap" type="UserloginCustom">
<id column="userID" property="userid"></id>
<result column="userName" property="username" />
<result column="password" property="password" />
<result column="role" property="role" />
<!--对象关联查询-->
<association property="role_ob" javaType="Role">
<id column="roleID" property="roleid"/>
<result column="roleName" property="rolename"/>
<result column="permissions" property="permissions"/>
</association>
</resultMap>
对应的sql语句如下:
<select id="findOne" parameterType="String" resultMap="UserloginResultMap">
SELECT
userlogin.*,
role.*,
FROM
userlogin,
role
WHERE
userlogin.role = role.roleID
</select>