MyBatis 增删改查【后端 17】

MyBatis 增删改查

引言

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象)映射成数据库中的记录。

在本博客中,我们将通过一系列示例来介绍如何使用 MyBatis 框架结合 MySQL 数据库进行基本的增删改查(CRUD)操作。

环境准备
  1. 安装 MySQL :确保你已经在你的机器上安装了 MySQL,并创建了一个数据库(例如 mybatis_demo)以及一个表(例如 user)。

  2. 添加 MyBatis 依赖 :如果你使用 Maven 构建项目,可以在 pom.xml 中添加 MyBatis 和 MySQL JDBC 驱动的依赖。

    xml 复制代码
    <dependencies>  
        <dependency>  
            <groupId>org.mybatis</groupId>  
            <artifactId>mybatis</artifactId>  
            <version>3.5.6</version>  
        </dependency>  
        <dependency>  
            <groupId>mysql</groupId>  
            <artifactId>mysql-connector-java</artifactId>  
            <version>8.0.23</version>  
        </dependency>  
    </dependencies>
  3. 配置 MyBatis :在 src/main/resources 目录下创建 mybatis-config.xml 文件,配置数据库连接信息和 MyBatis 的相关设置。

    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/mybatis_demo?serverTimezone=UTC"/>  
                    <property name="username" value="root"/>  
                    <property name="password" value="password"/>  
                </dataSource>  
            </environment>  
        </environments>  
          
        <mappers>  
            <mapper resource="org/mybatis/example/UserMapper.xml"/>  
        </mappers>  
    </configuration>
创建 User 实体类

在 Java 项目中,创建一个简单的 User 实体类来映射数据库中的 user 表。

java 复制代码
public class User {  
    private Integer id;  
    private String name;  
    private Integer age;  
  
    // 省略构造方法、getter 和 setter  
}
编写 Mapper 接口和 XML
  1. 创建 Mapper 接口:定义 User 的操作方法。

    java 复制代码
    public interface UserMapper {  
        User selectUserById(Integer id);  
        int insertUser(User user);  
        int updateUser(User user);  
        int deleteUser(Integer id);  
    }
  2. 编写 Mapper XML :在 src/main/resources 目录下创建 UserMapper.xml,编写 SQL 语句。

    xml 复制代码
    <!DOCTYPE mapper  
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
    <mapper namespace="org.mybatis.example.UserMapper">  
        <select id="selectUserById" resultType="org.mybatis.example.User">  
            SELECT id, name, age FROM user WHERE id = #{id}  
        </select>  
     
        <insert id="insertUser" parameterType="org.mybatis.example.User">  
            INSERT INTO user (name, age) VALUES (#{name}, #{age})  
        </insert>  
     
        <update id="updateUser" parameterType="org.mybatis.example.User">  
            UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}  
        </update>  
     
        <delete id="deleteUser" parameterType="int">  
            DELETE FROM user WHERE id = #{id}  
        </delete>  
    </mapper>
使用 MyBatis 进行 CRUD 操作

在 Java 代码中,你可以通过 MyBatis 的 SqlSession 来执行 Mapper 接口中定义的方法。

java 复制代码
try (SqlSession session = sqlSessionFactory.openSession()) {  
    UserMapper mapper = session.getMapper(UserMapper.class);  
  
    // 查询  
    User user = mapper.selectUserById(1);  
    System.out.println(user);  
  
    // 插入  
    User newUser = new User();  
    newUser.setName("New User");  
    newUser.setAge(30);  
    mapper.insertUser(newUser);  
    session.commit(); // 不要忘记提交事务  
  
    // 更新  
    newUser.setName("Updated User");  
    mapper.updateUser(newUser);  
    session.commit();  
  
    // 删除  
    mapper.deleteUser(newUser.getId());  
    session.commit();  
}
总结

以上示例展示了如何使用 MyBatis 框架结合 MySQL 数据库进行基本的增删改查操作。通过定义 Mapper 接口和 XML 映射文件,MyBatis 使得数据库操作变得简洁而高效。在实际项目中,可以根据需要扩展 Mapper 接口和 XML 文件,实现更复杂的业务逻辑。

相关推荐
程序媛-徐师姐9 分钟前
Java 基于SpringBoot+vue框架的老年医疗保健网站
java·vue.js·spring boot·老年医疗保健·老年 医疗保健
yngsqq10 分钟前
c#使用高版本8.0步骤
java·前端·c#
尘浮生19 分钟前
Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
偶尔。53520 分钟前
什么是事务?事务有哪些特性?
数据库·oracle
安迁岚22 分钟前
【SQL Server】华中农业大学空间数据库实验报告 实验六 视图
数据库·sql·mysql·oracle·实验报告
小白不太白95023 分钟前
设计模式之 模板方法模式
java·设计模式·模板方法模式
Tech Synapse25 分钟前
Java根据前端返回的字段名进行查询数据的方法
java·开发语言·后端
.生产的驴26 分钟前
SpringCloud OpenFeign用户转发在请求头中添加用户信息 微服务内部调用
spring boot·后端·spring·spring cloud·微服务·架构
xoxo-Rachel32 分钟前
(超级详细!!!)解决“com.mysql.jdbc.Driver is deprecated”警告:详解与优化
java·数据库·mysql