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日

相关文章

  • MyBatis传入数组集合类并使用foreach遍历

    MyBatis是一款流行的Java ORM框架,可以用于简化数据库操作。这里将详细讲解如何在MyBatis中传入数组集合类并使用foreach进行遍历。 第一步:传入数组集合类 在MyBatis中,可以通过使用@Param注解来传递参数。@Param注解需要指定参数的名称,例如: <select id="selectUsersByIds&qu…

    Java 2023年5月26日
    00
  • HTML页面3秒后自动跳转的三种常见方法

    下面我将详细讲解HTML页面3秒后自动跳转的三种常见方法。一共有三种方法,分别是使用HTML的meta标签、使用JavaScript的setTimeout()函数以及使用HTML的refresh标签。 一、使用HTML的meta标签 在HTML的head标签中添加meta标签,其中content属性用于指定页面跳转的目标URL,而http-equiv属性设为…

    Java 2023年6月15日
    00
  • spring集成httpclient配置的详细过程

    下面是spring集成httpclient配置的详细过程。 1. 引入依赖 首先在pom.xml中引入httpclient和httpasyncclient的依赖: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>http…

    Java 2023年5月31日
    00
  • Apache及Tomcat搭建集群环境过程解析

    Apache及Tomcat搭建集群环境过程解析 简介 在高并发的情况下,单一服务器的处理能力是有限的。为了提高网站的性能和稳定性,往往需要使用集群技术。其中,Apache服务器作为负载均衡器,可以将请求均衡地分配给不同的Tomcat服务器处理。本文将详细讲解Apache及Tomcat搭建集群的步骤及注意事项。 步骤 1. 安装Apache服务器 Apache…

    Java 2023年5月19日
    00
  • java多线程开发ScheduledExecutorService简化方式

    当我们需要在Java应用程序中执行定时任务时,可以使用ScheduledExecutorService。使用该工具可以轻松实现多线程执行任务,并使用线程池复用线程,从而减少资源的浪费和线程创建的时间。 下面是使用ScheduledExecutorService实现任务调度的完整攻略: 步骤1:创建线程池 我们首先需要创建一个线程池。在实际应用中,为了避免线程…

    Java 2023年5月19日
    00
  • boot-admin整合Quartz实现动态管理定时任务

    淄博烧烤爆红出了圈,当你坐在八大局的烧烤摊,面前是火炉、烤串、小饼和蘸料,音乐响起,啤酒倒满,烧烤灵魂的party即将开场的时候,你系统中的Scheduler(调试器),也自动根据设定的Trigger(触发器),从容优雅的启动了一系列的Job(后台定时任务)。工作一切早有安排,又何须费心劳神呢?因为boot-admin早已将Quartz这块肉串在了烤签上!项…

    Java 2023年4月27日
    00
  • 微信小程序是什么语言开发的 微信小程序的开发语言介绍

    微信小程序是一种轻量级应用(小程序),通过微信平台进行发布和使用。微信小程序的开发使用的主要语言是JavaScript,同时也支持HTML和CSS。 在微信小程序开发中,需要使用微信提供的基础库(WXML、WXSS和基于JavaScript的逻辑代码)来实现页面的设计和交互功能。同时,微信小程序也支持使用第三方框架进行开发,例如使用Vue.js框架进行开发。…

    Java 2023年5月23日
    00
  • java代码实现C盘文件统计工具

    Java代码实现C盘文件统计工具 本攻略介绍如何使用Java编写一个C盘文件统计工具,可以计算C盘某个目录下的文件数量、目录数量、总大小等信息,并输出到控制台。 步骤一:创建Java项目 首先,打开Eclipse,在工作区中创建一个Java项目。 选择菜单栏中的 “File” –> “New” –> “Java Project”。 输入项目的…

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