
MyBatis XML 查询 List 示例
在使用 MyBatis 进行数据库操作时,XML 配置文件是一个重要的部分。本文将介绍如何使用 MyBatis 的 XML 配置查询一个列表数据,并详细解释操作步骤、命令示例以及注意事项。
技术背景
MyBatis 是一个优秀的持久层框架,它用简洁的 XML 或注解来配置映射原生信息,将接口方法调用转化为数据库的操作。通过 MyBatis,我们可以使用简单的方法调用来执行复杂的 SQL 查询,使用 XML 来定义 SQL 映射关系更加灵活和清晰。
操作步骤
- 准备数据库和表
- 添加 MyBatis 配置
- 创建 Mapper XML 文件
- 创建 Java 接口
- 执行查询
首先,确保你的数据库中已有相应的表。以下 SQL 创建一个简单的用户表:
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL
);
在你的 MyBatis XML 配置文件中,配置数据库连接信息。例如:
<configuration>
<environments default="development">
<environment id="development">
<jdbc>
<driver>com.mysql.cj.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/your_database</url>
<username>root</username>
<password>password</password>
</jdbc>
</environment>
</environments>
</configuration>
创建一个 Mapper XML 文件,通常命名为 UserMapper.xml,并定义查询语句。以下是查询所有用户的示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-mapper-3.0.dtd">
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectAllUsers" resultType="com.example.model.User">
SELECT * FROM users
</select>
</mapper>
为 Mapper 创建一个 Java 接口,定义与 XML 中对应的方法:
package com.example.mapper;
import com.example.model.User;
import java.util.List;
public interface UserMapper {
List<User> selectAllUsers();
}
在你的业务逻辑中,可以通过 SqlSession 来执行这个查询:
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = userMapper.selectAllUsers();
// 处理 userList
} finally {
sqlSession.close();
}
注意事项
- 确保数据库驱动已添加到项目依赖中,例如添加 MySQL 的 JDBC 驱动。
- XML 文件的命名与命名空间需要一致,以便 MyBatis 正确找到对应的 Mapper。
- 在进行查询时,注意可能出现的空指针异常,确保数据库连接和 SQL 查询正常。
实用技巧
- 使用 resultMap 定义复杂对象的映射关系,可以方便处理复杂的数据结构。
- 使用参数类型(parameterType)来传递参数,提高查询的灵活性和可重用性。
- 可以通过插件扩展 MyBatis 的功能,如性能分析或日志记录。



