如何使用 MyBatis 来进行增、删、改、查操作

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 如何使用 MyBatis 来进行增、删、改、查操作

MyBatis 是一个优秀的持久层框架,它可以通过简单的 XML 或注解来配置和映射数据库操作,从而减少了 JDBC 代码的重复和复杂性。下面我们将详细介绍如何使用 MyBatis 来进行增、删、改、查操作。

 

1. 环境准备

 

1.1 添加依赖

 

首先,你需要在项目中添加 MyBatis 和数据库连接池的依赖(以 Maven 为例)。

 

```xml
<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.6</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.25</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.9</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.3.9</version>
    </dependency>
</dependencies>
```

 

1.2 配置数据库连接

 

创建一个 MyBatis 配置文件 `mybatis-config.xml`,并配置数据库连接信息。

 

```xml
<?xml version="1.0" encoding="UTF-8" ?>
<!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/your_database"/>
                <property name="username" value="your_username"/>
                <property name="password" value="your_password"/>
            </dataSource>
        </environment>
    </environments>
 
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>
```

 

2. 创建数据模型

 

创建一个数据模型类,例如 `User`:

 

```java
public class User {
    private int id;
    private String name;
    private String email;
 
    // Getters and Setters
}
```

 

3. 创建 Mapper 接口和 XML 配置

 

3.1 创建 Mapper 接口

 

创建一个 Mapper 接口,例如 `UserMapper`:

 

```java
public interface UserMapper {
    User selectUser(int id);
    List<User> selectAllUsers();
    void insertUser(User user);
    void updateUser(User user);
    void deleteUser(int id);
}
```

 

3.2 创建 Mapper XML 配置

 

创建对应的 XML 配置文件 `UserMapper.xml`:

 

```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="UserMapper">
 
    <select id="selectUser" parameterType="int" resultType="User">
        SELECT * FROM users WHERE id = #{id}
    </select>
 
    <select id="selectAllUsers" resultType="User">
        SELECT * FROM users
    </select>
 
    <insert id="insertUser" parameterType="User">
        INSERT INTO users (name, email) VALUES (#{name}, #{email})
    </insert>
 
    <update id="updateUser" parameterType="User">
        UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id}
    </update>
 
    <delete id="deleteUser" parameterType="int">
        DELETE FROM users WHERE id = #{id}
    </delete>
 
</mapper>
```

 

4. 使用 MyBatis 进行数据库操作

 

4.1 初始化 MyBatis

 

创建一个工具类来初始化 MyBatis:

 

```java
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 
public class MyBatisUtil {
    private static SqlSessionFactory sqlSessionFactory;
 
    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    public static SqlSession getSqlSession() {
        return sqlSessionFactory.openSession();
    }
}
```

 

4.2 执行数据库操作

 

使用 `SqlSession` 来执行增、删、改、查操作:

 

```java
public class MyBatisExample {
    public static void main(String[] args) {
        try (SqlSession session = MyBatisUtil.getSqlSession()) {
            UserMapper mapper = session.getMapper(UserMapper.class);
 
            // Insert
            User newUser = new User();
            newUser.setName("John Doe");
            newUser.setEmail("john@example.com");
            mapper.insertUser(newUser);
            session.commit();
 
            // Select
            User user = mapper.selectUser(1);
            System.out.println("User: " + user.getName() + ", " + user.getEmail());
 
            // Update
            user.setName("John Smith");
            mapper.updateUser(user);
            session.commit();
 
            // Delete
            mapper.deleteUser(1);
            session.commit();
 
            // Select All
            List<User> users = mapper.selectAllUsers();
            for (User u : users) {
                System.out.println("User: " + u.getName() + ", " + u.getEmail());
            }
        }
    }
}
```

 

总结

 

通过上述步骤,我们可以使用 MyBatis 实现对数据库的增、删、改、查操作。MyBatis 强大的映射功能和灵活的配置方式使得它成为一个非常受欢迎的持久层框架。

 

当使用 MyBatis 进行数据库操作时,还可以通过动态 SQL、结果映射、缓存等特性来提高开发效率和系统性能。例如,可以使用动态 SQL 来根据不同的条件拼接 SQL 语句,以实现灵活的查询功能;可以通过结果映射来将查询结果映射到复杂的 Java 对象结构;可以配置缓存来提高查询性能。

另外,MyBatis 还支持和 Spring 等框架集成,使得在企业级应用中更加方便地使用 MyBatis。

总的来说,MyBatis 是一个功能强大且灵活的持久层框架,它可以帮助开发人员更轻松地与数据库交互,减少重复代码,提高开发效率。

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
XML Java 数据库连接
【MyBatis】MyBatis操作数据库(一)
【MyBatis】MyBatis操作数据库(一)
34 1
|
3月前
|
SQL 存储 Java
基于MyBatis的增删改查操作
基于MyBatis的增删改查操作
33 1
|
3月前
|
缓存 Java 数据库连接
我们后端程序员不是操作MyBatis的CRUD Boy
大家好,我是南哥。一个对Java程序员进阶成长颇有研究的人,今天我们接着新的一篇Java进阶指南。为啥都戏称后端是CRUD Boy?难道就因为天天怼着数据库CRUD吗?要我说,是这个岗位的位置要的就是你CRUD,你不得不CRUD。哪有公司天天能给你搭建高并发、高可用、大数据框架的活呢,一条业务线总要成长吧,慢慢成熟了就要装修工来缝缝补补、美化美化,也就是CRUD的活。不能妄自菲薄CRUD Boy,我们是后端工程师。今天来指南下操作数据库之MyBatis框架。
110 3
我们后端程序员不是操作MyBatis的CRUD Boy
|
2月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
|
2月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
|
4月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
120 0
|
3月前
|
Java 数据库连接 数据库
Spring日志完结篇,MyBatis操作数据库(入门)
Spring日志完结篇,MyBatis操作数据库(入门)
|
4月前
|
XML Java 数据库连接
利用MyBatis框架操作数据库2
利用MyBatis框架操作数据库
37 2
|
4月前
|
Java 数据库连接 测试技术
利用MyBatis框架操作数据库1
利用MyBatis框架操作数据库
41 1
|
3月前
|
SQL Java 数据库连接
【MyBatis】深入解析MyBatis:高效操作数据库技术详解
【MyBatis】深入解析MyBatis:高效操作数据库技术详解
35 0