MyBatis 主要结构
在 MyBatis 中,通常会为数据库中的每个表创建一个对应的 Java Bean 类,并使用 Mapper 接口和 XML 文件来定义 SQL 操作和结果映射。以下是详细的说明和步骤。
1. 数据库表
假设数据库中有一个名为 Users
的表,表结构如下:
CREATE TABLE Users (
user_id INT PRIMARY KEY,
user_name VARCHAR(50),
user_phone VARCHAR(15),
user_address VARCHAR(100)
);
2. Java Bean 类
为 Users
表创建一个对应的 Java Bean 类 User
:
package cn.edu.guet.bean;
public class User {
private int userId;
private String userName;
private String userPhone;
private String userAddress;
// Getters and Setters
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPhone() {
return userPhone;
}
public void setUserPhone(String userPhone) {
this.userPhone = userPhone;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
}
3. Mapper 接口
创建一个 Mapper 接口 UserMapper
,定义与 Users
表相关的操作:
package cn.edu.guet.mapper;
import cn.edu.guet.bean.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface UserMapper {
User getUserById(int userId);
void insertUser(User user);
void updateUser(User user);
void deleteUser(int userId);
}
4. Mapper XML 文件
在 UserMapper.xml
中定义具体的 SQL 语句和结果映射:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.edu.guet.mapper.UserMapper">
<!-- 结果映射 -->
<resultMap id="userMap" type="cn.edu.guet.bean.User">
<id property="userId" column="user_id" jdbcType="INTEGER"/>
<result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="userPhone" column="user_phone" jdbcType="VARCHAR"/>
<result property="userAddress" column="user_address" jdbcType="VARCHAR"/>
</resultMap>
<!-- 查询操作 -->
<select id="getUserById" resultMap="userMap" parameterType="int">
SELECT *
FROM Users
WHERE user_id = #{userId}
</select>
<!-- 插入操作 -->
<insert id="insertUser" parameterType="cn.edu.guet.bean.User">
INSERT INTO Users (user_id, user_name, user_phone, user_address)
VALUES (#{userId}, #{userName}, #{userPhone}, #{userAddress})
</insert>
<!-- 更新操作 -->
<update id="updateUser" parameterType="cn.edu.guet.bean.User">
UPDATE Users
SET user_name = #{userName}, user_phone = #{userPhone}, user_address = #{userAddress}
WHERE user_id = #{userId}
</update>
<!-- 删除操作 -->
<delete id="deleteUser" parameterType="int">
DELETE FROM Users WHERE user_id = #{userId}
</delete>
</mapper>
5. MyBatis 配置文件
在 MyBatis 配置文件 mybatis-config.xml
中注册 Mapper:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
............
<!-- 注册 Mapper -->
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
</mappers>
</configuration>
总结
- Java Bean 类:用于表示数据库表中的一行数据。
- Mapper 接口:定义了操作数据库的抽象方法。
- Mapper XML 文件:将 SQL 语句与 Mapper 接口中的方法映射起来,并定义结果映射。
- MyBatis 配置文件:配置数据库连接信息和注册 Mapper。
这种结构使得代码清晰、易于维护,并且利用 MyBatis 的强大功能来处理数据库操作。