mybatis之增删改查

下面是关于 MyBatis 的增删改查操作的完整攻略。

简介

MyBatis 是一种优秀的持久层框架,它封装了 JDBC 操作的细节,并提供了方便的 SQL 映射配置方法,使得开发者可以使用面向对象的方式进行 SQL 操作。

在 MyBatis 中,增删改查操作是非常常见的操作。本文将通过两个示例分别讲解如何使用 MyBatis 实现增删改查操作。

示例1:查询

1.1 数据库表的建立

首先,我们需要在数据库中建立一个用户表,用来存储用户信息。

CREATE TABLE user (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  age INT(11) NOT NULL,
  gender ENUM('男', '女') NOT NULL,
  PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

1.2 实体类的定义

Java 代码中,我们需要先定义一个 User 实体类,用来存储与数据库表对应的数据。

public class User {
    private Long id;
    private String name;
    private Integer age;
    private Gender gender;

    // getter/setter 省略
}

public enum Gender {
    MALE("男"),
    FEMALE("女");

    private String text;

    Gender(String text) {
        this.text = text;
    }

    public String getText() {
        return text;
    }
}

1.3 Mapper 文件的编写

然后,我们需要为 User 实体类编写一个对应的 Mapper 文件,用来定义 SQL 语句。

<mapper namespace="com.example.mapper.UserMapper">

  <resultMap id="userResultMap" type="com.example.entity.User">
    <id property="id" column="id" />
    <result property="name" column="name" />
    <result property="age" column="age" />
    <result property="gender" column="gender" />
  </resultMap>

  <select id="getUserById" resultMap="userResultMap">
    SELECT * FROM user WHERE id = #{id}
  </select>

  <select id="getAllUsers" resultMap="userResultMap">
    SELECT * FROM user
  </select>

  <insert id="addUser" parameterType="com.example.entity.User">
    INSERT INTO user (name, age, gender) VALUES (#{name}, #{age}, #{gender})
  </insert>

  <update id="updateUser" parameterType="com.example.entity.User">
    UPDATE user SET name = #{name}, age = #{age}, gender = #{gender} WHERE id = #{id}
  </update>

  <delete id="deleteUserById" parameterType="java.lang.Long">
    DELETE FROM user WHERE id = #{id}
  </delete>

</mapper>

1.4 配置文件的编写

最后,我们需要在 MyBatis 的配置文件中配置 Mapper 文件。

<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC" />
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/test" />
        <property name="username" value="root" />
        <property name="password" value="password" />
      </dataSource>
    </environment>
  </environments>

  <mappers>
    <mapper resource="com/example/mapper/UserMapper.xml" />
  </mappers>
</configuration>

1.5 Java 代码的使用

现在,我们已经完成了整个 MyBatis 配置的编写。下面演示如何使用 MyBatis 查询数据库。

public class UserMapperTest {

    private static SqlSessionFactory sqlSessionFactory;

    @BeforeClass
    public static void setup() {
        sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
    }

    @Test
    public void testGetUserById() {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            User user = userMapper.getUserById(1L);
            System.out.println(user);
        }
    }

    @Test
    public void testGetAllUsers() {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            List<User> userList = userMapper.getAllUsers();
            System.out.println(userList);
        }
    }

}

以上代码实现了查询单个用户和查询全部用户操作。

示例2:插入

2.1 数据库表的建立

首先,我们需要在数据库中建立一个用户表,用来存储用户信息。

CREATE TABLE user (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  age INT(11) NOT NULL,
  gender ENUM('男', '女') NOT NULL,
  PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

2.2 实体类的定义

在 Java 代码中,我们需要先定义一个 User 实体类,用来存储与数据库表对应的数据。

public class User {
    private Long id;
    private String name;
    private Integer age;
    private Gender gender;

    // getter/setter 省略
}

public enum Gender {
    MALE("男"),
    FEMALE("女");

    private String text;

    Gender(String text) {
        this.text = text;
    }

    public String getText() {
        return text;
    }
}

2.3 Mapper 文件的编写

然后,我们需要为 User 实体类编写一个对应的 Mapper 文件,用来定义 SQL 语句。

<mapper namespace="com.example.mapper.UserMapper">

  <resultMap id="userResultMap" type="com.example.entity.User">
    <id property="id" column="id" />
    <result property="name" column="name" />
    <result property="age" column="age" />
    <result property="gender" column="gender" />
  </resultMap>

  <select id="getUserById" resultMap="userResultMap">
    SELECT * FROM user WHERE id = #{id}
  </select>

  <select id="getAllUsers" resultMap="userResultMap">
    SELECT * FROM user
  </select>

  <insert id="addUser" parameterType="com.example.entity.User">
    INSERT INTO user (name, age, gender) VALUES (#{name}, #{age}, #{gender})
  </insert>

  <update id="updateUser" parameterType="com.example.entity.User">
    UPDATE user SET name = #{name}, age = #{age}, gender = #{gender} WHERE id = #{id}
  </update>

  <delete id="deleteUserById" parameterType="java.lang.Long">
    DELETE FROM user WHERE id = #{id}
  </delete>

</mapper>

2.4 配置文件的编写

最后,我们需要在 MyBatis 的配置文件中配置 Mapper 文件。

<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC" />
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/test" />
        <property name="username" value="root" />
        <property name="password" value="password" />
      </dataSource>
    </environment>
  </environments>

  <mappers>
    <mapper resource="com/example/mapper/UserMapper.xml" />
  </mappers>
</configuration>

2.5 Java 代码的使用

现在,我们已经完成了整个 MyBatis 配置的编写。下面演示如何使用 MyBatis 插入数据。

public class UserMapperTest {

    private static SqlSessionFactory sqlSessionFactory;

    @BeforeClass
    public static void setup() {
        sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
    }

    @Test
    public void testAddUser() {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            User user = new User();
            user.setName("张三");
            user.setAge(20);
            user.setGender(Gender.MALE);
            userMapper.addUser(user);
            session.commit();
        }
    }

}

以上代码实现了向数据库插入一条用户信息的操作。

总结

本文介绍了如何使用 MyBatis 进行增删改查操作,并且以查询和插入两种操作为例进行了演示。使用 MyBatis 进行数据库操作可以大大简化开发工作,提高开发效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis之增删改查 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Ajax读取数据之分页显示篇实现代码

    Ajax是一种在Web应用程序中创建异步请求的技术。本篇攻略将演示如何使用Ajax读取数据并分页显示。 实现步骤 1.后端:编写接口,提供数据。 2.前端:使用Ajax从后端读取数据并展示。 3.前端:实现分页逻辑。 下面是这些步骤的详细说明。 编写接口 我们需要提供一个接口来获取数据。可以使用PHP、Java或任何其他后端编程语言编写接口。下面是一个使用P…

    Java 2023年6月15日
    00
  • Eclipse怎么创建jsp页面并导入el表达式?

    创建JSP页面并导入EL表达式的流程分为如下几步: 1. 创建动态Web项目 在Eclipse中,选择“File”->“New”->“Dynamic Web Project”,填写项目名称,选择合适的Target runtime,点击“Finish”创建新的Web项目。 2. 创建JSP页面 在项目的“WebContent”文件夹下,右键选择“N…

    Java 2023年6月15日
    00
  • Redis 集成Spring的示例代码(spring-data-redis)

    下面是有关Redis集成Spring的完整攻略 1. 前置条件 在使用Spring集成Redis的过程中,需要确保以下条件:- 已经安装并配置好Redis数据库- 已经熟悉Spring的基本操作 2. 导入依赖 在 Spring 项目中,我们需要添加支持 Redis 的依赖 spring-data-redis 。 这里我们使用 Maven 管理工具进行相关依…

    Java 2023年5月20日
    00
  • Spring Boot日志控制详解

    Spring Boot日志控制详解 简介 在应用程序中,日志是非常重要的组成部分。通过日志,我们可以了解应用程序中所发生的事件及其执行状态。Spring Boot提供了非常方便的日志控制功能,使得应用程序中的日志记录变得更加简单、可读且易于管理。 Spring Boot默认日志记录器 Spring Boot默认使用的是Logback日志框架,它拥有极高的性能…

    Java 2023年6月1日
    00
  • Java关键字之native详解

    Java关键字之native详解 在Java编程中,native是一个重要的关键字,本文将对其作用和使用进行详细解释。 native关键字的定义和作用 Java语言是一种面向对象的语言,它有自己的类型系统和运行环境。如果我们需要访问某些底层的系统资源,例如操作系统、硬件等,就需要使用native来声明一个本地方法(native method)。 native…

    Java 2023年5月26日
    00
  • java JDBC主要组件连接数据库及执行SQL过程示例全面详解

    Java JDBC主要组件连接数据库及执行SQL过程示例全面详解 简介 Java JDBC(Java Database Connectivity)是Java语言访问数据库的基本方式,它提供了一套API,用于连接和处理关系型数据库。在Java开发中,使用JDBC连接数据库是一项必须掌握的技术。 JDBC主要组件 JDBC的主要组件包括: 驱动管理器(Drive…

    Java 2023年6月16日
    00
  • 快速了解hibernate配置文件与映射文件

    下面是“快速了解hibernate配置文件与映射文件”的完整攻略。 配置文件 Hibernate的配置文件是一个XML文件,用于定义与数据库的连接信息和系统级其他配置信息。在 hibernate.cfg.xml 文件中,您可以指定以下信息: 数据库连接属性(例如数据库URL,用户名,密码) Hibernate的驱动程序类和其他配置设置 数据库方言,用于在查询…

    Java 2023年5月19日
    00
  • 使用Spring Boot+MyBatis框架做查询操作的示例代码

    接下来我将为您分享使用Spring Boot+MyBatis框架进行查询操作的攻略。 1. 环境搭建 首先,需要配置好开发环境,包括Java环境和IDE工具。具体操作可以参考相关网上教程。 然后需要添加Spring Boot和MyBatis的依赖,这里以Maven为例,可以在pom.xml文件中添加以下代码实现依赖的导入: <dependencies&…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部