MyBatis增删改查快速上手

MyBatis增删改查快速上手

MyBatis是一款基于Java语言的ORM框架,通过XML或注解的方式操作数据库,可以实现较为灵活的数据库访问控制。本文将介绍MyBatis在增删改查方面的使用方法。

安装MyBatis

MyBatis可以通过Maven依赖来引入,也可以直接下载jar包。此处以Maven方式为例,需在pom.xml文件添加以下依赖:

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.7</version>
</dependency>

配置MyBatis

MyBatis需要一个配置文件mybatis-config.xml,配置文件中包含了MyBatis的一些全局属性设置以及mapper映射文件的位置信息。

以下是一个简单的配置文件示例:

<?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>
  <settings>
    <setting name="cacheEnabled" value="true"/>
    <setting name="lazyLoadingEnabled" value="true"/>
  </settings>

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

其中,<settings>元素用于设置全局属性,<mappers>元素用于指定mapper映射文件所在路径,此处使用<mapper resource="UserMapper.xml"/>方式来指定路径。

编写mapper映射文件

mapper映射文件是MyBatis的核心,它定义了Java对象和SQL语句之间的映射关系。每个mapper文件包含了若干个操作数据表的语句,如增删改查等。以下是一个简单的mapper映射文件示例:

<?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.dao.UserMapper">
    <resultMap id="userMap" type="com.example.pojo.User">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="age" property="age"/>
    </resultMap>
    <select id="getUserById" resultMap="userMap">
        select * from users where id = #{id}
    </select>
    <insert id="addUser">
        insert into users(name, age) value(#{name}, #{age})
    </insert>
    <update id="updateUser">
        <set>
            <if test="name != null"> name = #{name} </if>
            <if test="age != null">, age = #{age} </if>
        </set>
        where id = #{id}
    </update>
    <delete id="deleteUserById">
        delete from users where id = #{id}
    </delete>
</mapper>

以上示例定义了一个User对象和users数据表之间的映射关系,支持根据id获取user信息、添加user信息、更新user信息、删除user信息等操作。

MyBatis 增删改查示例

以下是一个简单的增删改查示例,采用注解方式实现:

public interface UserDao {
    @Select("select * from users where id = #{id}")
    User getUserById(int id);

    @Insert("insert into users(name, age) value(#{name}, #{age})")
    int addUser(User user);

    @Update("update users set name = #{name}, age = #{age} where id = #{id}")
    int updateUser(User user);

    @Delete("delete from users where id = #{id}")
    int deleteUserById(int id);
}

以上示例定义了一个UserDao接口和一组基于注解的增删改查方法,通过注解内部的SQL语句对用户信息进行操作。

以下是使用MyBatis的示例,主要是通过SqlSession对mapper映射文件中定义的语句进行调用:

public class App {
    public static void main(String[] args) {
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();

        UserDao userDao = sqlSession.getMapper(UserDao.class);
        // 查询用户信息
        User user = userDao.getUserById(1);
        System.out.println(user);
        // 新增用户信息
        User newUser = new User();
        newUser.setName("Test User");
        newUser.setAge(20);
        userDao.addUser(newUser);
        System.out.println(newUser);
        // 更新用户信息
        User updateUser = new User();
        updateUser.setId(newUser.getId());
        updateUser.setName("Test User Updated");
        updateUser.setAge(21);
        userDao.updateUser(updateUser);
        System.out.println(updateUser);
        // 删除用户信息
        userDao.deleteUserById(newUser.getId());

        sqlSession.commit();
        sqlSession.close();
    }
}

以上示例首先创建了基于配置文件的SqlSessionFactory以及一个SqlSession对象,然后通过该对象调用对应mapper映射文件中定义的操作数据表的语句,对数据库中的用户信息进行了增删改查操作,注意需要在commit和close前调用SqlSession的commit方法保证执行结果正确。

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

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

相关文章

  • Tomcat常见异常及解决方案代码实例

    下面我来给你详细讲解“Tomcat常见异常及解决方案代码实例”的完整攻略。 Tomcat常见异常及解决方案 1. OutOfMemoryError 1.1 异常描述 当Tomcat应用程序服务器运行一段时间后,可能会出现“java.lang.OutOfMemoryError:Java heap space”异常,这是因为Tomcat堆空间不足。 1.2 解决…

    Java 2023年5月19日
    00
  • JDBC链接数据库的几个步骤

    JDBC 是Java Database Connectivity的缩写,意为Java数据库连通性,是Java语言中访问数据库的一种技术。以下是JDBC链接数据库的几个步骤以及示例: 步骤一:加载数据库驱动 在Java程序中要想使用某个数据库的API,就必须先装载这个数据库的驱动程序。 try { // 加载MySQL驱动 Class.forName(&quo…

    Java 2023年5月20日
    00
  • jsp源码实例4(搜索引擎)

    让我详细讲解一下“jsp源码实例4(搜索引擎)”的完整攻略。 源码说明 该示例实现了一个简单的搜索引擎,用户可以在搜索框中输入关键词,点击搜索按钮后,将展示包含该关键词的网页列表。源码分为以下几个文件: index.jsp:搜索页面,包括搜索框和搜索结果; search.jsp:搜索结果页面,展示包含关键词的网页列表; WebContent/WEB-INF/…

    Java 2023年6月15日
    00
  • java数组排列组合问题汇总

    Java数组排列组合问题汇总 在Java中,排列组合是一个常见的问题。本文将介绍如何使用Java处理排列组合问题。 一、排列问题 1.1 什么是排列? 排列是指从多个元素中选出一定数量的元素按一定的顺序排列成一列的不同情况。 1.2 Java中如何实现排列? Java中可以使用递归实现排列。下面是一个示例代码: public static void perm…

    Java 2023年5月26日
    00
  • springboot全局日期格式化的两种方式

    下面就为您详细讲解“springboot全局日期格式化的两种方式”的攻略: 方式一:使用配置类 首先在项目中新建一个配置类,例如MyConfig类。 在MyConfig类中,使用@Configuration注解来标识这是一个配置类。 在MyConfig类中,使用@Bean注解来将日期格式化器加入到Spring容器中。 在日期格式化器的Formatter#pa…

    Java 2023年6月1日
    00
  • Java中数据库常用的两把锁之乐观锁和悲观锁

    Java中数据库常用的两把锁是乐观锁和悲观锁。 什么是乐观锁和悲观锁? 悲观锁 悲观锁假定在执行操作时会产生并发冲突,因此在操作数据前先加锁,确保操作数据时不会被其他人修改。悲观锁的典型实现就是数据库中的行锁、表锁。 在Java中,悲观锁常用的实现就是synchronized关键字和ReentrantLock类。 乐观锁 乐观锁假定在执行操作时不会产生并发冲…

    Java 2023年5月19日
    00
  • Java实战之图书管理系统的实现

    Java实战之图书管理系统的实现攻略 介绍 图书管理系统是一个广受欢迎的Java项目,本文主要介绍如何使用Java语言实现一个图书管理系统,并分为以下几个步骤: 设计数据库 创建项目 实现前端界面 实现后台逻辑 测试和部署 设计数据库 图书管理系统需要设计一个数据库,用来存储图书信息和用户信息。我们可以使用MySQL数据库,并创建两个表,一个是图书信息表,另…

    Java 2023年5月19日
    00
  • js模式化窗口问题![window.dialogArguments]

    JS模式化窗口通常指的是使用JavaScript实现弹出窗口的功能,在一些Web应用中非常常见。然而,这种实现方式会遇到一些问题,比如无法正常使用window.dialogArguments对象。 问题描述 前提:这里假设我们在页面A中打开了一个模态弹出窗口B。 通常情况下,在页面B中可以通过访问window.dialogArguments对象来获取从页面A…

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