DAO和XML文件参数和返回值

①MyBatis中resultType和resultMap的区别

1.使用MyBatis查询数据库记录时,返回类型常用的有两种:resultType和resultMap。那么两者之间有什么区别呢?

如果只是返回一个值,简单类型,比如说String或者int,那直接用resultType就行了

2.如果sql查询结果返回的是单一记录列名和实体类中的字段名一致,可以使用resultType,MyBatis会自动把查询结果赋值给和字段名一致的字段。 如果sql查询结果返回的列名和实体类中的字段名一致,可以使用resultType,MyBatis会自动把查询结果赋值给和字段名一致的字段。

@Data
public class Users {
    
    private Long id;
    private String userName;
    private Integer sex;

}

3.如果单一记录,列不一致,sql语句中可以使用别名的方式使其一致。

当sql的列名和实体类的列名不一致,这时就可以使用resultMap了。




这样把相应的数据库字段映射到创建的实体类,column代表的是数据库中字段名字,property代表的是创建的实体类中相应的字段名,也可以只修改不一样的字段名,也能得到同样的结果。

4.如果返回的是记录的多条,字段对应则用resultType="User"

但是dao中是这样写

public ArrayList searchUserRoles(int userId);

5.如果返回的是记录的多条,字段不对应则用resultType="Map",而且resultMap要自定义映射。

但是dao中这样写

public ArrayList searchUserRoles(int userId);

也就是多条记录是依靠dao中的返回值来定义的。

你可能感兴趣的:(xml,java,开发语言)