本示例的场景:查询返回列表。
- 数据库user表:
- 模型User 的类定义:
package com.thb.model;
public class User {
private int id;
private String userName;
private String homeTown;
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return this.userName;
}
public void setUserName(String name) {
this.userName = name;
}
public String getHomeTown () {
return this.homeTown;
}
public void setHomeTown(String hometown) {
this.homeTown = hometown;
}
}
- UserMapper.java接口定义:
package com.thb.mapper;
import java.util.List;
public interface UserMapper {
List<User> selectManyUsers();
}
- mapper xml文件中的对应映射:
使用resultMap:
<resultMap type="com.thb.model.User" id="userResultMap">
<id property="id" column="id"/>
<result property="userName" column="user_name"/>
<result property="homeTown" column="home_town"/>
</resultMap>
<select id="selectManyUsers" resultMap="userResultMap">
select id, user_name, home_town from user
</select>
或者使用resultType:
<select id="selectManyUsers" resultType="com.thb.model.User">
select
id as "id",
user_name as "userName",
home_town as "homeTown"
from user
</select>
注意,resultType指定的是列表中元素的类型,而不是集合类型本身
https://mybatis.org/mybatis-3/sqlmap-xml.html#select
调用代码片段:
// 取得一个SqlSession
try (SqlSession session = sqlSessionFactory.openSession()) {
// 取得mapper
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> manyUsers = mapper.selectManyUsers();
System.out.println("returned records of user: " + manyUsers.size());
for (User user : manyUsers) {
System.out.println("*".repeat(60));
System.out.println("id = " + user.getId());
System.out.println("userName = " + user.getUserName());
System.out.println("homeTown = " + user.getHomeTown());
}
}
运行输出: