mybatis实体类与表映射
时间: 2023-09-10 09:11:35 浏览: 71
MyBatis 是一款持久层框架,可以通过 XML 文件或注解形式进行配置,将 Java 实体类与数据库表进行映射。下面是一个示例:
1. 实体类定义
```java
public class User {
private Long id;
private String username;
private String password;
private Integer age;
// getter 和 setter 略
}
```
2. 数据库表定义
```sql
CREATE TABLE user (
id BIGINT(20) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) DEFAULT NULL,
password VARCHAR(50) DEFAULT NULL,
age INT(11) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
3. MyBatis XML 文件配置
```xml
<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
<resultMap id="userMap" type="com.example.entity.User">
<id column="id" property="id" />
<result column="username" property="username" />
<result column="password" property="password" />
<result column="age" property="age" />
</resultMap>
<select id="getUserById" resultMap="userMap">
SELECT id, username, password, age FROM user WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="com.example.entity.User">
INSERT INTO user (username, password, age) VALUES (#{username}, #{password}, #{age})
</insert>
<update id="updateUser" parameterType="com.example.entity.User">
UPDATE user SET username = #{username}, password = #{password}, age = #{age} WHERE id = #{id}
</update>
<delete id="deleteUserById">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
```
4. Mapper 接口定义
```java
public interface UserMapper {
User getUserById(Long id);
void insertUser(User user);
void updateUser(User user);
void deleteUserById(Long id);
}
```
这样就完成了 Java 实体类与数据库表的映射。在实际开发中,可以根据具体需求进行配置,比如使用注解方式配置映射关系,或者使用 MyBatis-Plus 等工具简化操作。