ORM 自定义sql,where条件变量值为null,转为:where remark=null是不对的

这篇具有很好参考价值的文章主要介绍了ORM 自定义sql,where条件变量值为null,转为:where remark=null是不对的。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ORM 自定义sql,where条件变量值为null,转为:where remark=null是不对的

该如何解决呢?

例子如下:

			PreparedSql preparedSql = BeeFactory.getHoneyFactory().getPreparedSql();
//			update orders set remark=#{remark},abc=#{abc} where id=#{id}
			String sql = CustomSql.getCustomSql("osql.example.entity.updateOrders");
			Map<String, Object> map = new HashMap<>();
//			map.put("remark", null);
			map.put("abc", "abc-changed");
			map.put("id", 11);
			int updateNum=preparedSql.modify(sql, map);
			Logger.info(updateNum);
			
			
			String sql2="update orders set remark=#{remark},abc=#{abc} where id=#{id} and remark=#{remark}";
			int updateNum2=preparedSql.modify(sql2, map);
//			update orders set remark=null,abc='abc-changed' where id=11 and remark=null ;  
			//得到的sql: where条件的 remark=null是不对的.
			Logger.info(updateNum2);

需要在变量的值为null时,改为:
remark is null
这是SQL的语法.
使用ORM自定义sql, 在where条件,使用remark=#{remark @toIsNULL1}才是对的.

			String sql3="update orders set remark=#{remark},abc=#{abc} where id=#{id} and remark=#{remark @toIsNULL1}";
			int updateNum3=preparedSql.modify(sql3, map);  //remark=#{remark @toIsNULL1}   在where条件,使用remark=#{remark @toIsNULL1}才是对的.
			
			Logger.info(updateNum3);

代码参考:
https://gitee.com/automvc/bee-exam
Bee,一个简单易用,功能强大的ORM框架.文章来源地址https://www.toymoban.com/news/detail-521221.html

到了这里,关于ORM 自定义sql,where条件变量值为null,转为:where remark=null是不对的的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • sql语句转为es查询条件(elasticsearch-sql使用)

    github源码地址: https://gitee.com/weiyxiong_admin/elasticsearch-sql/blob/master/src/test/java/org/nlpcn/es4sql/ExplainTest.java 1、添加pom.xml依赖 2、scala 将sql转为es查询json语句 3、测试 4、查询返回结果展示(即步骤三esJSON结果打印) 5、打开postman

    2024年02月13日
    浏览(39)
  • 【SQL开发实战技巧】系列(三十):数仓报表场景☞树形(分层)查询如何排序?以及如何在树形查询中正确的使用where条件

    【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧】系列(四):从执行计划讨论UNION ALL与空字符串UNION与OR的使用注意事项 【SQL开发实战技巧】系列

    2023年04月09日
    浏览(41)
  • 判断int或Integer变量值为空值null

    1.int型变量的值不能为空值null 2.Integer类表示一个int值,但可以包含一个空值null 3.判断Integer变量是否为空值null:Integer变量== null;Integer变量!= null demo示例程序如下: 运行结果:

    2024年02月11日
    浏览(34)
  • SQL 中的 NULL 值:定义、测试和处理空数据,以及 SQL UPDATE 语句的使用

    什么是 NULL 值? NULL 值是指字段没有值的情况。如果表中的字段是可选的,那么可以插入新记录或更新记录而不向该字段添加值。此时,该字段将保存为 NULL 值。需要注意的是,NULL 值与零值或包含空格的字段不同。具有 NULL 值的字段是在记录创建期间留空的字段。 如何测试

    2024年02月05日
    浏览(42)
  • MySQL 查询常用操作(2) —— 条件查询 where

    MySQL中常用的查询操作,首先是能直接从表中直接取出数据,接着能对查询结果做一些简单的处理,比如去重等,然后是根据条件查询数据,包括精准查询、模糊查询以及按照数据的某个范围或者指定多个指标进行查询,值得注意的是,MySQL中的一些查询会忽略空值。最后是将

    2023年04月10日
    浏览(46)
  • mysql根据条件导出表数据(`--where=“文本“`)

    本文只讲导出,导入可以参考不同MySQL服务的表以及库的数据迁移(/备份)-CSDN博客 现在先查下 migration_one.table_11 里有什么: 管理员终端打开输入: 得到结果: 执行结果: 得到: 如果只想要 name 以’he’开头的字段数据那么就只需要修改where文本里面的数据: 执行结果 t

    2024年02月05日
    浏览(44)
  • Mysql join加多条件与where的区别

    最近在项目中遇到一个问题,感觉有点意思,在解决问题及查阅了相关资料后,打算写篇文章给朋友们分享一下。 问题现象: 问题是很常见的空指针问题,后端查询数据库数据,遍历进行相关业务处理时报空指针。通过断点调试发现问题就出在查询回来的数据上,返回的L

    2024年02月11日
    浏览(30)
  • MyBatisPlus详解(二)条件构造器Wrapper、自定义SQL、Service接口

    MyBatisPlus详解系列文章: MyBatisPlus详解(一)项目搭建、@TableName、@TableId、@TableField注解与常见配置 2.1.1 Wrapper 在BaseMapper接口提供的相关方法中,除了以id作为where条件, 还支持更加复杂的where条件,即条件构造器Wrapper : Wrapper是条件构造器的抽象类,其下有很多默认实现,继承

    2024年04月25日
    浏览(35)
  • MySQL数据库——MySQL WHERE:条件查询数据

    在 MySQL 中,如果需要有条件的从数据表中查询数据,可以使用 WHERE 来指定查询条件。 使用 WHERE 的语法格式如下: WHERE 查询条件 查询条件可以是: 带比较运算符和逻辑运算符的查询条件 带 BETWEEN AND 的查询条件 带 IS NULL 的查询条件 带 IN

    2024年02月03日
    浏览(40)
  • Mybatisplus 传参参数为自定义sql, 使用条件构造器作为参数

    1 pom依赖 2 mapper 接口文件 3 mapper 的xml配置文件 4 查询 5 测试,生成的两个sql语句如下 注意 :不同的版本,可能会有部分区别,总之注意下版本

    2024年02月22日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包