使用MyBatis 动态update数据
使用mybatis写sql,需要动态更新对象数据,每次需要更新的字段不同,为了防止null空异常,就需要用动态sql了,
<update id="update" parameterType="com.commuli.po.User"> update s_user <trim prefix="set" suffixOverrides=","> <if test="name!=null">name=#{name},</if> <if test="age!=null">age=#{age},</if> <if test="address!=null">address=#{address},</if> <if test="createDate!=null">createDate=#{createDate},</if> </trim> where id=#{id} </update>
注:trim标签用来去掉sql中最后一个字段的逗号“,”。
以上所述是小编给大家介绍的使用MyBatis 动态update数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
Mybatis update数据库死锁之获取数据库连接池等待
最近学习测试mybatis,单个增删改查都没问题,最后使用mvn test的时候发现了几个问题: 1.update失败,原因是数据库死锁 2.select等待,原因是connection连接池被用光了,需要等待 get: 1.要勇于探索,坚持就是胜利.刚看到错误的时候直接懵逼,因为错误完全看不出来,属于框架内部报错,在犹豫是不是直接睡 觉得了,毕竟也快12点了.最后还是给我一点点找到问题所在了. 2.同上,要敢于去深入你不了解的代码,敢于研究不懂的代码. 3.距离一个合格的码农越来越远了,因为越
-
Mybatis Update操作返回值问题
后端的数据持久化使用的是 Mybatis ,在做高并发下账户增减余额的时候,打算使用乐观锁来解决这个问题.在获取update操作的返回值时遇到了一个问题,似乎 Mybatis 进行 update 操作得到的 int 返回值并不是影响的行数.这下就尴尬了. 一般而言,我们知道当我们使用 Mybatis 在 mapper 接口中定义 insert delete 等操作,定义一个 int 类型的返回值,通过该值是否为 0 来判断数据库中受影响的行数进而判断操作是否成功. 到底 update 返回值代表
-
Mybatis 中的insertOrUpdate操作
下面一段代码给大家介绍了Mybatis 中的insertOrUpdate操作,具体代码如下所示: <insert id="insertOrUpdate"> insert into base_person (pname, idcard, gender, nation, source_flag, create_time) values <foreach collection="list" item="p" index="i
-
Mybatis和orcale update语句中接收参数为对象的实例代码
Mybatis的 mapper.xml 中 update 语句使用 if 标签判断对像属性是否为空值. UserDTO是传过来参数的类型,userDTO是在mapperDao接口中给更新方法的参数起的别名. mapperDao.java int updata(@Param("userDTO") UserDTO userDTO); mapper.xml <update id="updata" parameterType="UserDTO"&g
-
mybatis执行批量更新batch update 的方法(oracle,mysql两种)
Oracle和MySQL数据库的批量update在mybatis中配置不太一样: oracle数据库: <code class="hljs tcl" style=""><<span class="hljs-keyword" style="">update</span> id=<span class="hljs-string" style=""
-
使用MyBatis 动态update数据
使用mybatis写sql,需要动态更新对象数据,每次需要更新的字段不同,为了防止null空异常,就需要用动态sql了, <update id="update" parameterType="com.commuli.po.User"> update s_user <trim prefix="set" suffixOverrides=","> <if test="name!=null&qu
-
详解Mybatis动态sql
1.什么是mybatis动态sql 看到动态,我们就应该想到,这是一个可以变化的sql语句 MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑 2.mybatis动态sql使用前准备 a.数据库表 b.创建类 3.使用mybatis动态sql,得先知道一些属性值 一,插入 selectKey:在sql语句前后或后执行的sql语句 keyColumn:对应字段名或别名 keyProperty:对应实体类的属性名或map的key值 order:在执行语句
-
Mybatis动态SQL之if、choose、where、set、trim、foreach标记实例详解
动态SQL就是动态的生成SQL. if标记 假设有这样一种需求:查询用户,当用户名不等于"admin"的时候,我们还需要密码为123456. 数据库中的数据为: MyBatisConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
-
MyBatis 动态SQL和缓存机制实例详解
有的时候需要根据要查询的参数动态的拼接SQL语句 常用标签: - if:字符判断 - choose[when...otherwise]:分支选择 - trim[where,set]:字符串截取,其中where标签封装查询条件,set标签封装修改条件 - foreach: if案例 1)在EmployeeMapper接口文件添加一个方法 public Student getStudent(Student student); 2)如果要写下列的SQL语句,只要是不为空,就作为查询条件,如下所示,这样
-
mybatis实现对数据的增删查改实例详解
前期准备 新建java工程或java wweb工程,需要导入以下的包, 基本工作已经完成,接下来开始进入正题. 新建实体类 新建与数据库表对应的实体类 package com.edu.hpu.domain; /** * @author Administrator *user表所对应的实体类 */ public class User { //实体类的属性和表的字段名称一一对应 private int id; private String name; private int age; //对属性进行
-
MyBatis动态Sql之if标签的用法详解
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用if标签生成动态的Sql,主要包含以下3个场景: 1.根据查询条件实现动态查询 2.根据参数值实现动态更新某些列 3.根据参数值实现动态插入某些列 1. 使用if标签实现动态查询 假设有这样1个需求:根据用户的输入条件来查询用户列表,如果输入了用户名,就根据用户名模糊查询,如果输入了邮箱,就根据邮箱精确查询,如果同时输入了
-
MyBatis动态创建表的实例代码
项目中业务需求的不同,有时候我们需要动态操作数据表(如:动态建表.操作表字段等).常见的我们会把日志.设备实时位置信息等存入数据表,并且以一定时间段生成一个表来存储,log_201806.log_201807等.在这里我们用MyBatis实现,会用到动态SQL. 动态SQL是Mybatis的强大特性之一,MyBatis在对sql语句进行预编译之前,会对sql进行动态解析,解析为一个BoundSql对象,也是在此对动态sql进行处理. 在动态sql解析过程中,#{ }与${ }的效果是不一样的:
-
Mybatis动态SQL的实现示例
场景 在实际应用开发过程中,我们往往需要写复杂的 SQL 语句,需要拼接,而拼接SQL语句又稍微不注意,由于引号,空格等缺失可能都会导致错误. Mybatis提供了动态SQL,也就是可以根据用户提供的参数,动态决定查询语句依赖的查询条件或SQL语句的内容. 动态SQL标签 if 和 where 标签 <!--动态Sql : where / if--> <select id="dynamicSql" resultType="com.lks.domain.Use
-
FluentMybatis实现mybatis动态sql拼装和fluent api语法
目录 开始第一个例子: Hello World 新建演示用的数据库结构 创建数据库表对应的Entity类 运行测试来见证Fluent Mybatis的神奇 配置spring bean定义 使用Junit4和Spring-test来执行测试 开始第一个例子: Hello World 新建Java工程,设置maven依赖 新建maven工程,设置项目编译级别为Java8及以上,引入fluent mybatis依赖包. <dependencies> <!-- 引入fluent-mybatis
-
mybatis动态sql实现逻辑代码详解
目录 1.xml文件读取 2.xml 文件解析 mybatis通过将sql配置xml文件中,通过解析xml动态标签来实现动态sql 如下样例 xml文件 <?xml version = "1.0" ?> <!DOCTYPE script SYSTEM "script-1.0.dtd"> <script namespace="user"> <common id="commonOrder"
随机推荐
- 一句sql更新两个表并可更新对应的字段值具体实现
- 最全的mysql 5.7.13 安装配置方法图文教程(linux) 强烈推荐!
- 使用jQuery将多条数据插入模态框的实现代码
- 基于jQuery实现的菜单切换效果
- jquery.Ajax()方法调用Asp.Net后台的方法解析
- 为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
- Java中异常打印输出的常见方法总结
- Python heapq使用详解及实例代码
- Python实现复杂对象转JSON的方法示例
- Android开发工程中集成mob短信验证码功能的方法
- ASP编程入门进阶(二十):ADO组件之分页程序
- C#实现闪动托盘图标效果的方法
- MySQL存储引擎总结
- html小技巧之td,div标签里内容不换行
- css实现兼容各个浏览器的技巧的代码
- js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
- js带按钮的提示框可供选择示例代码
- 函数sync、fsync与fdatasync的总结整理(必看篇)
- javascript工厂模式和构造函数模式创建对象方法解析
- php中10个不同等级压缩优化图片操作示例