MyBatis增删改查(CRUD)操作

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: CRUD操作指的就是增加(Create)、读取(Retrieve)、更新(Update)、删除(Delete)这四种基本数据库操作;MyBatis提供了一种简洁且灵活的方式来执行这些操作,通过配置映射文件和编写对应的SQL语句,将Java对象与数据库表进行映射和操作。准备任务首先,你需要在你的项目中添加MyBatis的依赖等;创建数据库连接idea,接下来,你需要创建一个MyBatis的配置文件(通常是一个XML文件);注意:com.mysql.cj.jdbc.Driver是从MySQL Connector/J版本8.0开始引入的。在此版本之前,MySQL Connector/J使

前言

CRUD操作指的就是增加(Create)、读取(Retrieve)、更新(Update)、删除(Delete)这四种基本数据库操作;

MyBatis提供了一种简洁且灵活的方式来执行这些操作,通过配置映射文件和编写对应的SQL语句,将Java对象与数据库表进行映射和操作。

准备任务

首先,你需要在你的项目中添加MyBatis的依赖等;

创建数据库连接idea,

接下来,你需要创建一个MyBatis的配置文件(通常是一个XML文件);

注意:com.mysql.cj.jdbc.Driver是从MySQL Connector/J版本8.0开始引入的。在此版本之前,MySQL Connector/J使用的是com.mysql.jdbc.Driver驱动程序类。

<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!-- 配置您的数据库连接信息 -->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/数据库名"/>
                <property name="username" value="root"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!-- 在这里添加您的数据访问接口 Mapper.xml映射文件 -->
        <mapper resource="Mapper.xml"/>
    </mappers>
</configuration>

创建Mapper.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.xml -->
<!-- 定义命名空间为 com.example.Mapper -->
<mapper namespace="com.example.poo.Mapper">
    <!-- 查询所有用户 -->
    <select id="getAllUsers" resultType="com.example.pojo.User">
        SELECT * FROM tb_user
    </select>
    <!-- 根据用户ID查询用户 -->
    <select id="getUserById" parameterType="java.lang.Integer" resultType="com.example.pojo.User">
        SELECT * FROM tb_user WHERE id = #{id}
    </select>
    <!-- 插入新用户 -->
    <insert id="insertUser" parameterType="com.example.pojo.User">
        INSERT INTO tb_user (id, name, age) VALUES (#{id}, #{name}, #{age})
    </insert>
    <!-- 更新用户信息 -->
    <update id="updateUser" parameterType="com.example.pojo.User">
        UPDATE tb_user SET name = #{name}, age = #{age} WHERE id = #{id}
    </update>
    <!-- 根据用户ID删除用户 -->
    <delete id="deleteUser" parameterType="java.lang.Integer">
        DELETE FROM tb_user WHERE id = #{id}
    </delete>
</mapper>

创建实体类 User

public class User {
    private Integer id;
    private String name;
    private Integer age;
    // 构造方法、Getter和Setter方法
    // ...
}

创建Mapper接口

public interface Mapper {
    List<User> getAllUsers();
    User getUserById(Integer id);
    void insertUser(User user);
    void updateUser(User user);
    void deleteUser(Integer id);
}

创建utils包

编写MyBatis工具类,在文件夹utils下新建 -->MybatisUtils.class文件,编写代码如下:

package com.daimalu.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
//sqlSessionFactory -->sqlSession
public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;
    //使用mybatis第一步,获取sqlSessionFactory对象
    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //既然有了sqlSessionFactory,顾名思义,我们就可以从中获得sqlSession的实例了
    //sqlSession 完全包含了面向数据库执行SQL命令所需的所有方法
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }
}

创建测试类

使用MyBatis框架进行数据库操作的测试类;

每个方法都执行了不同的数据库操作,包括获取所有用户、根据ID获取用户、插入用户、更新用户和删除用户。注释中提供了对每个方法的解释和操作的简要描述。

import com.example.poo.Mapper;
import com.example.pojo.User;
import com.example.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
public class MyBatisTest {
    private SqlSession sqlSession;
    private Mapper mapper;
    @Before
    public void setUp() {
        // 获取 SqlSession 实例
        sqlSession = MybatisUtils.getSqlSession();
        // 获取 Mapper 接口的实例
        mapper = sqlSession.getMapper(Mapper.class);
    }
    @After
    public void tearDown() {
        // 关闭 SqlSession
        sqlSession.close();
    }
    @Test
    public void testGetAllUsers() {
        // 从数据库获取所有用户
        List<User> users = mapper.getAllUsers();
        for (User user : users) {
            // 打印每个用户
            System.out.println(user);
        }
    }
    @Test
    public void testGetUserById() {
        // 根据ID从数据库获取用户
        User user = mapper.getUserById(1);
        // 打印用户信息
        System.out.println(user);
    }
    @Test
    public void testInsertUser() {
        // 创建一个新的 User 对象
        User user = new User();
        user.setId(2);
        user.setName("John");
        user.setAge(25);
        // 插入用户信息到数据库
        mapper.insertUser(user);
        sqlSession.commit();
        System.out.println("用户插入成功。");
    }
    @Test
    public void testUpdateUser() {
        // 创建一个新的 User 对象
        User user = new User();
        user.setId(1);
        user.setName("Jane");
        user.setAge(30);
        // 更新数据库中对应ID的用户信息
        mapper.updateUser(user);
        sqlSession.commit();
        System.out.println("用户更新成功。");
    }
    @Test
    public void testDeleteUser() {
        // 删除数据库中对应ID的用户信息
        mapper.deleteUser(2);
        sqlSession.commit();
        System.out.println("用户删除成功。");
    }
}
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
24天前
|
SQL Java 数据库连接
MyBatis-Plus:简化 CRUD 操作的艺术
MyBatis-Plus 是一个基于 MyBatis 的增强工具,它旨在简化 MyBatis 的使用,提高开发效率。
50 1
MyBatis-Plus:简化 CRUD 操作的艺术
|
5月前
|
XML Java 数据库连接
【MyBatis】MyBatis操作数据库(一)
【MyBatis】MyBatis操作数据库(一)
52 1
|
5月前
|
SQL 存储 Java
基于MyBatis的增删改查操作
基于MyBatis的增删改查操作
42 1
|
2月前
|
SQL XML Java
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
文章介绍了MyBatis的简单增删改查操作,包括创建数据表、实体类、配置文件、Mapper接口及其XML文件,并解释了`#{}`预编译参数和`@Param`注解的使用。同时,还涵盖了resultType与resultMap的区别,并提供了完整的代码实例和测试用例。
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
|
5月前
|
SQL 存储 Java
基于MyBatis的增删改查的基础操作
基于MyBatis的增删改查的基础操作
37 0
|
1月前
|
SQL Java 数据库连接
Mybatis方式完成CRUD操作
Mybatis方式完成CRUD操作
39 0
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
44 1
|
4月前
|
Java 数据库连接 数据库
mybatis plus 中增删改查及Wrapper的使用
mybatis plus 中增删改查及Wrapper的使用
211 3
|
5月前
|
缓存 Java 数据库连接
我们后端程序员不是操作MyBatis的CRUD Boy
大家好,我是南哥。一个对Java程序员进阶成长颇有研究的人,今天我们接着新的一篇Java进阶指南。为啥都戏称后端是CRUD Boy?难道就因为天天怼着数据库CRUD吗?要我说,是这个岗位的位置要的就是你CRUD,你不得不CRUD。哪有公司天天能给你搭建高并发、高可用、大数据框架的活呢,一条业务线总要成长吧,慢慢成熟了就要装修工来缝缝补补、美化美化,也就是CRUD的活。不能妄自菲薄CRUD Boy,我们是后端工程师。今天来指南下操作数据库之MyBatis框架。
126 3
我们后端程序员不是操作MyBatis的CRUD Boy
|
3月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
336 0