一小时迅速入门Mybatis之增删查改篇

一小时迅速入门Mybatis之增删查改篇

Mybatis是一款优秀的ORM框架,其简单易用,功能强大,得到了广大开发者的喜爱。本文将为大家介绍使用Mybatis进行增删查改的完整攻略。

1. 环境准备

Mybatis需要依赖JDBC驱动和数据库连接池,建议使用Maven进行管理。这里我们以MySQL为例,展示如何配置环境。

首先在pom.xml文件中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.22</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.2.4</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>
</dependencies>

其中,mysql-connector-java是MySQL的JDBC驱动,druid是连接池库,mybatis是Mybatis的核心依赖。

接着在resources文件夹下创建mybatis-config.xml配置文件,配置Mybatis的核心参数,如数据库连接信息、映射文件等。

<?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="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC" />
            <dataSource type="com.alibaba.druid.pool.DruidDataSource">
                <property name="driverClassName" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull&amp;transformedBitIsBoolean=true&amp;useSSL=false" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/> <!-- 映射文件 -->
    </mappers>
</configuration>

对于上述配置文件,需要根据具体情况自行修改数据库连接信息等参数。

2. 新建实体类

在项目的src/main/java目录下创建entity/User.java文件,该文件用于描述数据库中的User表对应的Java对象,示例如下:

public class User {
    private Integer id;
    private String name;
    private Integer age;
    // 省略getters/setters方法
}

代码中的字段需要与数据库中的列名一一对应。

3. 创建Mybatis映射文件

在resources/mapper目录下创建UserMapper.xml文件,用于描述User表的增删查改操作。示例如下:

<?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="com.example.mapper.UserMapper">
    <!-- 查询用户信息 -->
    <select id="getUserById" resultType="com.example.entity.User" parameterType="int">
        SELECT id, name, age FROM user WHERE id = #{id}
    </select>

    <!-- 新增用户信息 -->
    <insert id="insertUser" parameterType="com.example.entity.User">
        INSERT INTO user(name, age) VALUES(#{name}, #{age})
    </insert>

    <!-- 修改用户信息 -->
    <update id="updateUser" parameterType="com.example.entity.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>

通过以上配置文件,定义了4个操作:查询用户信息、新增用户信息、修改用户信息、删除用户信息。其中,每个操作对应一个id和SQL语句。指定了输入参数类型和输出结果类型。

4. 编写Mybatis核心代码

在项目中创建一个测试类来运行MyBatis程序,示例代码如下:

public class UserMapperTest {
    private SqlSessionFactory sqlSessionFactory;

    @Before
    public void setup() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }

    @Test
    public void test() {
        SqlSession session = sqlSessionFactory.openSession();
        try {
            UserMapper userMapper = session.getMapper(UserMapper.class);

             // 新增用户信息
            User user = new User();
            user.setName("张三");
            user.setAge(18);
            userMapper.insertUser(user);

            // 查询用户信息
            User user2 = userMapper.getUserById(user.getId());
            System.out.println(user2.getName() + ":" + user2.getAge());

            // 修改用户信息
            user2.setName("李四");
            user2.setAge(20);
            userMapper.updateUser(user2);

            // 查询用户信息
            User user3 = userMapper.getUserById(user.getId());
            System.out.println(user3.getName() + ":" + user3.getAge());

            // 删除用户信息
            userMapper.deleteUser(user.getId());

            // 查询用户信息
            User user4 = userMapper.getUserById(user.getId());
            Assert.assertNull(user4);
        } finally {
            session.close();
        }
    }
}

通过SqlSessionFactoryBuilder创建SqlSessionFactory实例,拿到SqlSession的实例,然后就可以使用UserMapper接口中定义的方法实现对User表的增删查改。

5. 运行程序

最后运行UserMapperTest中的单元测试,测试通过则Mybatis的增删查改功能已经可以正常使用。

示例1:查询用户信息

SqlSession session = sqlSessionFactory.openSession();
try {
    UserMapper userMapper = session.getMapper(UserMapper.class);
    User user = userMapper.getUserById(1);
    System.out.println(user.getName() + ":" + user.getAge());
} finally {
    session.close();
}

示例2:新增用户信息

SqlSession session = sqlSessionFactory.openSession();
try {
    UserMapper userMapper = session.getMapper(UserMapper.class);
    User user = new User();
    user.setName("张三");
    user.setAge(18);
    int result = userMapper.insertUser(user);
    session.commit();
} finally {
    session.close();
}

以上为Mybatis的增删查改操作的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一小时迅速入门Mybatis之增删查改篇 - Python技术站

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

相关文章

  • Struts2数据输入验证教程详解

    Struts2数据输入验证教程详解 什么是数据输入验证 在应用程序中,数据输入验证是一项重要的任务。它可以确保应用程序接受有效的、可靠的和正确的数据。数据输入验证通常采用静态和动态验证技术,在前台和后台进行验证。 静态验证技术用于验证数据格式是否为正确的格式,比如数字、日期等。而动态验证技术则用于验证数据是否是符合业务规则和逻辑的,例如输入的身份证号码必须符…

    Java 2023年5月20日
    00
  • JSP多种web应用服务器导致JSP源码泄漏漏洞

    JSP多种web应用服务器导致JSP源码泄漏漏洞,是一种常见的web应用安全问题。攻击者可以通过获取JSP源代码,了解网站的系统架构、数据库配置、代码逻辑等敏感信息,企图发起更加准确有效的攻击。 攻击者可以通过以下几个步骤来利用“JSP多种web应用服务器导致JSP源码泄漏漏洞”完成渗透攻击: 发现漏洞:攻击者通过各种方式对目标网站进行框架探测,如果目标网站…

    Java 2023年6月15日
    00
  • PHP排序算法之堆排序(Heap Sort)实例详解

    PHP排序算法之堆排序(Heap Sort)实例详解 什么是堆排序? 堆排序(Heap Sort)是一种树形选择排序,是对直接选择排序的有效改进。 堆排序的过程是将待排序的序列构建成一个大根堆(或小根堆),此时整个序列的最大(或最小)值就是堆顶的根节点。 将其与堆数组的末尾元素进行交换,此时末尾就为最大(或最小)值。 然后将剩余n-1个元素重新构造成堆,这样…

    Java 2023年5月26日
    00
  • scratch怎么上传源程序代码? scratch上传本地程序的技巧

    以下是详细的攻略: 如何上传源程序代码? 在Scratch网站中,用户可以通过将项目上传到服务器来保存项目和共享项目。在Scratch网站上完成的项目已经包含了所有程序的代码,但是如果用户想要上传本地的项目并分享他们的源代码,可以按照以下步骤: 在Scratch网站上登录账户并点击“上传”按钮。 在弹出的对话框中,单击“从文件上传”按钮。 寻找保存在本地计算…

    Java 2023年5月23日
    00
  • Java加密 消息摘要算法SHA实现详解

    Java 加密之消息摘要算法SHA256 实现详解 在这篇文章中,我们将详细介绍使用 SHA256 算法实现消息摘要的 Java 编程。本文将介绍什么是消息摘要算法、SHA256 算法的原理和用法,以及如何在 Java 中使用 SHA256 实现消息摘要。本文还提供了两个示例来演示如何使用 SHA256 算法。 什么是消息摘要算法? 消息摘要算法是简单的单向…

    Java 2023年5月19日
    00
  • String.replaceAll方法详析(正则妙用)

    String.replaceAll方法详析(正则妙用) 介绍 在Java程序开发中,字符串的常见操作之一就是字符串替换。String类提供了replaceAll方法,可以基于正则表达式进行替换操作。本文将详细介绍String.replaceAll的用法,以及正则表达式的妙用。 方法定义 String类中用于替换的方法有两个:replace和replaceAl…

    Java 2023年5月27日
    00
  • java多线程编程制作电子时钟

    Java 多线程电子时钟制作攻略 一、准备工作 在开始制作电子时钟之前,需要完成以下准备工作: 安装并配置 Java 开发环境。 了解 Java 多线程编程的基本原理和语法。 二、电子时钟的制作步骤 1.定义一个继承 Runnable 接口的类,并实现 run() 方法。在此方法内编写时钟新增一个秒钟和输出时间的方法。 示例代码如下: class Clock…

    Java 2023年5月18日
    00
  • J2EE验证码图片如何生成和点击刷新验证码

    生成验证码图片是常见的防止机器恶意攻击的安全策略之一,J2EE技术栈中也针对这个问题提供了解决方案。下面,我将为大家详细讲解如何生成验证码图片并实现点击刷新验证码的功能。 一、生成验证码图片 生成验证码图片一般可以借助第三方库或自己编写代码实现。下面我们来讲解一种使用第三方库生成验证码图片的方法:使用Kaptcha。 1.1 引入Kaptcha依赖 在Mav…

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