滚雪球学MyBatis(05):基本CRUD操作

前言

欢迎回到我们的MyBatis系列教程。在上一期中,我们详细介绍了如何创建数据模型(实体类)和定义Mapper接口,并通过实例演示了它们在MyBatis中的基本应用。现在,我们将进一步深入,具体讲解如何使用MyBatis实现基本的CRUD(创建、读取、更新、删除)操作。这些操作是任何数据库应用程序的核心功能,也是我们使用MyBatis的主要目的之一。

5.1 插入数据(Insert)

插入操作用于将新记录添加到数据库表中。我们将在Mapper接口中定义一个插入方法,并在Mapper映射文件中编写对应的SQL语句。

定义插入方法

UserMapper接口中定义一个插入用户的方法:

java 复制代码
public interface UserMapper {
    void insertUser(User user);
}
编写SQL语句

UserMapper.xml映射文件中添加对应的SQL语句:

xml 复制代码
<insert id="insertUser" parameterType="com.example.model.User">
    INSERT INTO users (name, age) VALUES (#{name}, #{age})
</insert>
示例代码

在应用程序中使用插入方法:

java 复制代码
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

User newUser = new User();
newUser.setName("Alice");
newUser.setAge(25);

userMapper.insertUser(newUser);
sqlSession.commit();
sqlSession.close();

5.2 查询数据(Select)

查询操作用于从数据库表中检索记录。我们将定义一个查询所有用户的方法,并编写相应的SQL语句。

定义查询方法

UserMapper接口中定义一个查询所有用户的方法:

java 复制代码
public interface UserMapper {
    List<User> getAllUsers();
}
编写SQL语句

UserMapper.xml映射文件中添加对应的SQL语句:

xml 复制代码
<select id="getAllUsers" resultType="com.example.model.User">
    SELECT * FROM users
</select>
示例代码

在应用程序中使用查询方法:

java 复制代码
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

List<User> users = userMapper.getAllUsers();
for (User user : users) {
    System.out.println(user.getName() + " - " + user.getAge());
}

sqlSession.close();

5.3 更新数据(Update)

更新操作用于修改数据库表中的现有记录。我们将定义一个更新用户信息的方法,并编写对应的SQL语句。

定义更新方法

UserMapper接口中定义一个更新用户的方法:

java 复制代码
public interface UserMapper {
    void updateUser(User user);
}
编写SQL语句

UserMapper.xml映射文件中添加对应的SQL语句:

xml 复制代码
<update id="updateUser" parameterType="com.example.model.User">
    UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
示例代码

在应用程序中使用更新方法:

java 复制代码
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

User existingUser = userMapper.getAllUsers().get(0);
existingUser.setAge(26);

userMapper.updateUser(existingUser);
sqlSession.commit();
sqlSession.close();

5.4 删除数据(Delete)

删除操作用于从数据库表中移除记录。我们将定义一个删除用户的方法,并编写对应的SQL语句。

定义删除方法

UserMapper接口中定义一个删除用户的方法:

java 复制代码
public interface UserMapper {
    void deleteUser(int id);
}
编写SQL语句

UserMapper.xml映射文件中添加对应的SQL语句:

xml 复制代码
<delete id="deleteUser" parameterType="int">
    DELETE FROM users WHERE id = #{id}
</delete>
示例代码

在应用程序中使用删除方法:

java 复制代码
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

int userIdToDelete = userMapper.getAllUsers().get(0).getId();
userMapper.deleteUser(userIdToDelete);
sqlSession.commit();
sqlSession.close();

总结

通过本期内容,我们详细讲解了如何在MyBatis中实现基本的CRUD操作,包括插入、查询、更新和删除。这些操作是任何数据库应用程序的核心功能,掌握这些内容可以帮助你更好地使用MyBatis与数据库进行交互。在下一期中,我们将探讨MyBatis的高级查询与动态SQL功能,进一步提升我们的开发能力。

感谢大家的阅读,我们下期再见!

相关推荐
Java小白笔记9 小时前
关于使用Mybatis-Plus 自动填充功能失效问题
spring boot·后端·mybatis
计算机学姐12 小时前
基于SpringBoot+Vue的篮球馆会员信息管理系统
java·vue.js·spring boot·后端·mysql·spring·mybatis
程序员大金13 小时前
基于SpringBoot+Vue+MySQL的智能物流管理系统
java·javascript·vue.js·spring boot·后端·mysql·mybatis
惜.己17 小时前
MyBatis中一对多关系的两种处理方法
java·开发语言·后端·sql·mysql·mybatis·idea
终末圆17 小时前
MyBatis动态SQL中的`if`标签使用【后端 19】
java·数据结构·数据库·sql·算法·spring·mybatis
飞翔的佩奇19 小时前
Java项目: 基于SpringBoot+mybatis+maven医院管理系统(含源码+数据库+任务书+开题报告+毕业论文)
java·数据库·spring boot·毕业设计·maven·mybatis·医院管理系统
这孩子叫逆20 小时前
35. MyBatis中的缓存失效机制是如何工作的?
java·spring·mybatis
ChinaRainbowSea1 天前
十八,Spring Boot 整合 MyBatis-Plus 的详细配置
java·数据库·spring boot·spring·mybatis·web
飞翔的佩奇1 天前
Java项目: 基于SpringBoot+mybatis+maven课程答疑系统(含源码+数据库+毕业论文)
java·数据库·spring boot·毕业设计·maven·mybatis·课程答疑
OceanSky61 天前
Mybatis中sql数组为空判断
数据库·sql·mybatis·数组判空