一、通过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
我们可以在results里面写上value属性,就可以在里面添加result了,result就是我们的一对一映射
id字段用于标志是不是主键,然后column和property的含义就和xml配置是一样的,result之间用逗号隔开
现在来跑一下查询所有,完美~
那每个查询都要写那么多注解吗,不是的,results里有个id属性,就和我们xml的resultMap名称一样,支持定义名称
然后我们只需在别的地方引用userMap即可,使用reslutMap注解
测一下,没有任何问题
三、通过属性配置完成映射
Mybatis给我们提供了一种映射方式,如果属性的命名是遵从驼峰命名法的,数据列名遵从下划线命名,
那么可以使用这种方式,类似如下:
实体类中属性userName对应数据库列名user_name;
userId对应user_id;