Mybatis解决实体类属性和表字段对应不上

一、通过XML文件中的resultMap

这种方式是最常见的,类似如下:

<mapper namespace="demo.UserDao">
  <resultMap id="userResultMap" type="entity.User">
    <!-- 用id属性来映射主键字段 -->
    <id property="id" column="uid"/>
    <!-- 用result属性来映射非主键字段 -->
<result property="username" column="uusername "/>
<result property="birthday" column="ubirthday"/>
<result property="address" column="uaddress"/>
<result property="sex" column="usex"/>
  </resultMap>
</mapper>

二、通过注解@Results和@Result,@results注解里面包含了id和多个result

Mybatis解决实体类属性和表字段对应不上_第1张图片

我们可以在results里面写上value属性,就可以在里面添加result了,result就是我们的一对一映射
Mybatis解决实体类属性和表字段对应不上_第2张图片

id字段用于标志是不是主键,然后column和property的含义就和xml配置是一样的,result之间用逗号隔开
Mybatis解决实体类属性和表字段对应不上_第3张图片

现在来跑一下查询所有,完美~
Mybatis解决实体类属性和表字段对应不上_第4张图片

那每个查询都要写那么多注解吗,不是的,results里有个id属性,就和我们xml的resultMap名称一样,支持定义名称

Mybatis解决实体类属性和表字段对应不上_第5张图片

然后我们只需在别的地方引用userMap即可,使用reslutMap注解
Mybatis解决实体类属性和表字段对应不上_第6张图片
  测一下,没有任何问题
在这里插入图片描述

三、通过属性配置完成映射

Mybatis给我们提供了一种映射方式,如果属性的命名是遵从驼峰命名法的,数据列名遵从下划线命名,

那么可以使用这种方式,类似如下:

实体类中属性userName对应数据库列名user_name;

userId对应user_id;

四、sql取别名

你可能感兴趣的:(Mybatis框架总结,mybatis,spring,java,mysql)