mybatis动态sql之新增与更新方式

 更新时间:2023年07月17日 09:55:10   作者:某猿蚊常叮  
这篇文章主要介绍了mybatis动态sql之新增与更新方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mybatis动态sql新增与更新

记录一个简单的mybatis动态sql例子

新增

<?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="org.ruiskey.mapper.UserMapper">
    <insert id="save">
        insert into user
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="id != null and id != ''">
                    id,
                </if>
                <if test="username != null and username != ''">
                    username,
                </if>
                <if test="password != null and password != ''">
                    password,
                </if>
                <if test="nickname != null and nickname != ''">
                    nickname,
                </if>
                <if test="email != null and email != ''">
                    email,
                </if>
                <if test="phone != null and phone != ''">
                    phone,
                </if>
                <if test="address != null and address != ''">
                    address
                </if>
            </trim>
            <trim prefix="values (" suffix=")" suffixOverrides=",">
                <if test="id != null and id != ''">
                    #{id},
                </if>
                <if test="username != null and username != ''">
                    #{username},
                </if>
                <if test="password != null and password != ''">
                    #{password},
                </if>
                <if test="nickname != null and nickname != ''">
                    #{nickname},
                </if>
                <if test="email != null and email != ''">
                    #{email},
                </if>
                <if test="phone != null and phone != ''">
                    #{phone},
                </if>
                <if test="address != null and address != ''">
                    #{address}
                </if>
            </trim>
    </insert>
</mapper>

更新

<update id="update">
    update user
    <set>
        <if test="username != null and username != ''">
            username = #{username}
        </if>
        <if test="password != null and password != ''">
            password = #{password}
        </if>
        <if test="nickname != null and nickname != ''">
            nickname = #{nickname}
        </if>
        <if test="email != null and email != ''">
            email = #{email}
        </if>
        <if test="phone != null and phone != ''">
            phone = #{phone}
        </if>
        <if test="address != null and address != ''">
            address = #{address}
        </if>
    </set>
    <where>
        id = #{id}
    </where>
</update>

mybatis动态SQL增删改查

我们在对数据库进行增删改查的时候,很多时候我们并不确定我们要进行传入的参数的个数,种类以及是否为空。

此时我们就需要用到mybatis动态sql来对数据库进行灵活的交互。

  • 步骤一:导入相关jar包,编写连接数据库的MybatisUtil工具类
  • 步骤二:在src下配置mybatis.xml配置文件。其中对数据库连接,映射文件的加载进行配置。(简写配置可选)
  • 步骤三:建立实体类Student

  • 步骤四:增删改查的方法以及映射文件StudentMapper.xml中配置的编写。

添加数据

insert 对应的映射文件中配置:

通过传入数组参数删除

deleteArray对应的映射文件中配置:

通过传入List集合参数进行删除

deleteList 对应的映射文件中配置:

更新数据

update 对应的映射文件中配置:

神奇的是:

查找数据

findAll对应的映射文件配置

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java数据结构BFS广搜法解决迷宫问题

    Java数据结构BFS广搜法解决迷宫问题

    广搜BFS的基本思想是: 首先访问初始点v并将其标志为已经访问。接着通过邻接关系将邻接点入队。然后每访问过一个顶点则出队。按照顺序,访问每一个顶点的所有未被访问过的顶点直到所有的顶点均被访问过。广度优先遍历类似与层次遍历
    2022-04-04
  • IDEA插件之mybatisx插件使用教程(超详细!)

    IDEA插件之mybatisx插件使用教程(超详细!)

    MybatisX 是一款基于IDEA的快速开发插件,为效率而生,下面这篇文章主要给大家介绍了关于IDEA插件之mybatisx插件使用的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Java编程中的vector类用法学习笔记

    Java编程中的vector类用法学习笔记

    Vector通常被用来实现动态数组,即可实现自动增长的对象数组,和C++一样vector类同样被Java内置,下面就来看一下vector类的基本用法.
    2016-05-05
  • sharding-jdbc中的事务详细解读

    sharding-jdbc中的事务详细解读

    这篇文章主要介绍了sharding-jdbc中的事务详细解读,sharding-jdbc在分库分表方面提供了很大的便利性,在使用DB的时候,通常都会涉及到事务这个概念,而在分库分表的环境上再加上事务,就会使事情变得复杂起来,需要的朋友可以参考下
    2023-12-12
  • Java 后端开发中Tomcat服务器运行不了的五种解决方案

    Java 后端开发中Tomcat服务器运行不了的五种解决方案

    tomcat是在使用Java编程语言开发服务端技术使用最广泛的服务器之一,但经常在开发项目的时候会出现运行不了的情况,这里总结出几种能解决的办法
    2021-10-10
  • Java使用poi生成word文档的简单实例

    Java使用poi生成word文档的简单实例

    Java POI是一个用于处理Microsoft Office文件(如Word、Excel和PowerPoint)的API,它是一个开源库,允许Java开发者读取、创建和修改这些文档,本文给大集介绍了Java使用poi生成word文档的简单实例,感兴趣的朋友可以参考下
    2024-06-06
  • 浅谈Java注解和动态代理

    浅谈Java注解和动态代理

    这篇文章主要介绍了Java中有关注解和动态代理的一些知识,涉及了Annotation、数据类型等相关内容,需要的朋友可以参考下。
    2017-09-09
  • springcloud本地配置优先方式

    springcloud本地配置优先方式

    这篇文章主要介绍了springcloud本地配置优先方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • java实现数据库主键生成示例

    java实现数据库主键生成示例

    这篇文章主要介绍了java实现数据库主键生成示例,需要的朋友可以参考下
    2014-03-03
  • Java多线程通信实现方式详解

    Java多线程通信实现方式详解

    这篇文章主要介绍了Java多线程通信实现方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论