您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 使用Mapper对单表进行增删改查
## 一、前言
在Java企业级开发中,MyBatis作为一款优秀的持久层框架,通过Mapper接口与XML映射文件的结合,极大简化了数据库操作。本文将详细介绍如何使用MyBatis Mapper对数据库单表进行基础的CRUD(增删改查)操作。
## 二、环境准备
### 1. 依赖配置
```xml
<!-- MyBatis核心依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- 数据库驱动(以MySQL为例) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
);
public interface UserMapper {
// 插入数据
int insert(User user);
// 根据ID删除
int deleteById(Integer id);
// 更新数据
int update(User user);
// 根据ID查询
User selectById(Integer id);
// 查询全部
List<User> selectAll();
}
UserMapper.xml
文件示例:
<mapper namespace="com.example.mapper.UserMapper">
<!-- 插入操作 -->
<insert id="insert" parameterType="com.example.entity.User">
INSERT INTO user(username, password, age)
VALUES(#{username}, #{password}, #{age})
</insert>
<!-- 删除操作 -->
<delete id="deleteById" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
<!-- 更新操作 -->
<update id="update" parameterType="com.example.entity.User">
UPDATE user SET
username = #{username},
password = #{password},
age = #{age}
WHERE id = #{id}
</update>
<!-- 查询操作 -->
<select id="selectById" parameterType="int" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
<select id="selectAll" resultType="com.example.entity.User">
SELECT * FROM user
</select>
</mapper>
User user = new User();
user.setUsername("test");
user.setPassword("123456");
user.setAge(25);
int rows = userMapper.insert(user);
System.out.println("影响行数:" + rows);
int rows = userMapper.deleteById(1);
if(rows > 0){
System.out.println("删除成功");
}
User user = userMapper.selectById(2);
user.setPassword("654321");
int rows = userMapper.update(user);
// 单条查询
User user = userMapper.selectById(2);
System.out.println(user);
// 列表查询
List<User> users = userMapper.selectAll();
users.forEach(System.out::println);
<insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user(username, password, age)
VALUES(#{username}, #{password}, #{age})
</insert>
<update id="updateSelective" parameterType="User">
UPDATE user
<set>
<if test="username != null">username = #{username},</if>
<if test="password != null">password = #{password},</if>
<if test="age != null">age = #{age}</if>
</set>
WHERE id = #{id}
</update>
#{}
中的名称与实体属性一致resultType
是否配置正确#{}
而非${}
进行参数传递通过MyBatis Mapper操作单表,开发者可以: - 避免手动编写JDBC代码 - 通过XML实现SQL与Java代码解耦 - 灵活运用动态SQL处理复杂场景 - 提高数据库操作的安全性和可维护性
建议在实际开发中结合MyBatis-Plus等增强工具,可以进一步简化单表操作。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。