本文以自定义的数据库forum为例,其中包含用户表user和帖子表article
1、编写实体类
1.1、选择model包,鼠标右键点击New >> Java Class,自定义Java文件名称并创建。
1.2、根据自定义表(这里以user表为例)创建实体类
package com.example.forum.model;
import lombok.Data;
import java.util.Date;
@Data
public class User {
private long id;
private String username;
private String password;
private String nickname;
private String email;
private String phoneNum;
private Integer articleCount;
private byte gender;
private Date createTime;
private Date updateTime;
}
- @Data:注解在类上,提供类的get、set、equals、hashCode、toString等方法,提高代码的简洁性,当然在使用该注解之前需要引入lombok依赖。
- 这里的id数据类型是long是因为表中的id数据类型是bigint。
- 在实体类中通常用Integer而不是int,因为int是基本数据类型,默认值是0,而Integer是对象,默认值是null,如果数据库中数据存在为空的情况,那么返回数据库字段值是null的话,int类型会报错,而Integer不会。
- 由于表中gender的值范围为0、1、2,因此选择byte类型而不是Int类型来节省内存。
2、编写映射文件
2.1、在Dao包中编写xxxMapper.java接口文件
- 选中Dao包,鼠标右键点击New >> Java Class
- 选择Interface,自定义命名之后按回车即可创建
- 在类上添加@Mapper注解,即可按照需求添加函数
- 编写得到所有用户的函数
2.2、编写映射文件xxxMapper.xml
由于在properties文件中定义了映射文件位置(如下图所示),因此在src/main/resources/mapper目录下创建映射文件。
- 选中mapper文件夹,鼠标右键点击 New >> File
- 填写xml文件名称(最好和对应的接口文件名一致方便查找),按下回车即可成功创建
- 复制mybatis的固定xml格式代码并粘贴到文件中
<?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="com.example.forum.dao.UserMapper">
</mapper>
namespace是命名空间,值是对应mapper接口文件的全限定名,因此xml文件可通过namespace与接口文件关联
- 编写得到所有用户信息的sql语句
id和对应mapper接口文件的函数名是一样的,表示对接口的具体实现方法,从而可以和接口文件的具体函数相关联,resultType是返回的数据类型,也就是开头定义的实体类