Mybatis的返回值深入

Dao 接口

/**

  • 查询所有用户

  • @return

*/

List findAll();

映射配置

select * from user

特殊情况示例


修改实体类

实体类代码如下:(此时的实体类属性和数据库表的列名已经不一致了)

public class User implements Serializable {

private Integer userId;

private String userName;

private Date userBirthday;

private String userSex;

private String userAddress;

public Integer getUserId() {

return userId;

}

public void setUserId(Integer userId) {

this.userId = userId;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public Date getUserBirthday() {

return userBirthday;

}

public void setUserBirthday(Date userBirthday) {

this.userBirthday = userBirthday;

}

public String getUserSex() {

return userSex;

}

public void setUserSex(String userSex) {

this.userSex = userSex;

}

public String getUserAddress() {

return userAddress;

}

public void setUserAddress(String userAddress) {

this.userAddress = userAddress;

}

@Override

public String toString() {

return “User [userId=” + userId + “, userName=” + userName + “, userBirthday=”

  • userBirthday + “, userSex=”

  • userSex + “, userAddress=” + userAddress + “]”;

}

}

Dao 接口

/**

  • 查询所有用户

  • @return

*/

List findAll();

映射配置

select * from user

测试查询结果

@Test

public void testFindAll() {

List users = userDao.findAll();

for(User user : users) {

System.out.println(user);

}

}

输出结果:

在这里插入图片描述

名称会有值,是因为:mysql 在 windows 系统中不区分大小写!

修改映射配置

使用别名查询

select id as userId,username as userName,birthday as userBirthday,sex as userSex,address as userAddress from user

输出结果:

在这里插入图片描述

如果我们的查询很多,都使用别名的话写起来会很麻烦,有别的解决办法,继续往下面看。

resultMap 结果类型

========================================================================

**(1)resultMap 标签可以建立查询的列名和实体类的属性名称不一致时建立对应关系。从而实现封装。

(2)在 select 标签中使用 resultMap 属性指定引用即可。同时 resultMap 可以实现将查询结果映射为复杂类型的 pojo,比如在查询结果映射对象中包括 pojo 和 list 实现一对一查询和一对多查询。**

定义 resultMap


映射配置


select * from user

测试结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值