日常开发笔记20240338

news/2024/5/26 20:21:15/文章来源:https://blog.csdn.net/qq_25310669/article/details/136555499

文章目录

  • 1.mybatis的@Param注解
  • 2.mybatis的#{}和${}的使用与区别
  • 3. mybatis中where语句有可选条件有必选条件,怎么写
  • 4.mybatis的domain对象
  • 5.mapper接口返回Integer的问题
  • 6.bigdecimal的小数点位数
  • 7.vue的前端panel组件换图标

1.mybatis的@Param注解

在写java的mybatis的mapper接口的时候,如果需要传递多个参数,则需要声明在xml文件中参数的引用名称,如果有多个参数,这个写的过程就觉得比较麻烦,在mybatis的版本升级到3.4.1 版本之后,@Param就可以省略掉了,直接变量名称就是xml文件中的引用名称,如下代码:

List<SceneTemplateDetectionEvent> selectSceneTemplateDetectionEventBetween(String tableName, String start, String end);<select id="selectSceneTemplateDetectionEventBetween"resultMap="SceneTemplateDetectionEventResult">select id, gmtCreateTime, eventName, imgPath, status from ${tableName}where gmtCreateTime between #{start} and #{end}
</select>

参考博客:https://blog.csdn.net/Park33/article/details/129861007

2.mybatis的#{}和${}的使用与区别

在MyBatis 的映射配置文件中,动态传递参数有两种方式:

  • #{} 占位符
  • ${} 拼接符

#{} 和 ${} 的区别:

(1)

1)#{} 为参数占位符 ?,即sql 预编译

2)${} 为字符串替换,即 sql 拼接

(2)

1)#{}:动态解析 -> 预编译 -> 执行

2)${}:动态解析 -> 编译 -> 执行

(3)

1)#{} 的变量替换是在DBMS 中

2)${} 的变量替换是在 DBMS 外

(4)

1)变量替换后,#{} 对应的变量自动加上单引号 ‘’

2)变量替换后,${} 对应的变量不会加上单引号 ‘’

(5)

1)#{} 能防止sql 注入

2)${} 不能防止sql 注入

注意:
(1)不论是单个参数,还是多个参数,一律都建议使用注解@Param(“”)
(2)能用 #{} 的地方就用 #{},不用或少用 ${}
(3)表名作参数时,必须用 ${}。如:select * from ${tableName}
(4)order by 时,必须用 ${}。如:select * from t_user order by ${columnName}
(5)使用 ${} 时,要注意何时加或不加单引号,即 和 ′ {} 和 ' {}’

参考内容:https://www.cnblogs.com/xiao-lin-unit/p/13644004.html

3. mybatis中where语句有可选条件有必选条件,怎么写

只要写在where标签内部就可以了。比如下面的status=0.

    <select id="selectEcOrderList" parameterType="EcOrder" resultMap="EcOrderResult"><include refid="selectEcOrderVo"/><where>status = 0<if test="feesAttributed != null  and feesAttributed != ''"> and fees_attributed like concat('%', #{feesAttributed}, '%')</if><if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if><if test="params.beginGmtCreateTime != null and params.beginGmtCreateTime != '' and params.endGmtCreateTime != null and params.endGmtCreateTime != ''"> and gmt_create_time between #{params.beginGmtCreateTime} and #{params.endGmtCreateTime}</if></where>order by gmt_create_time desc</select>

4.mybatis的domain对象

domain对象不能随便乱写,都是有配置的,一旦乱写会找到对象的位置,就会报错。比如下面的配置,就必须按照这个来写,这样在xml文件中,映射成为对象时候,才能只写对象名字。

# MyBatis配置
mybatis:# 搜索指定包别名typeAliasesPackage: com.ruoyi.project.**.domain# 配置mapper的扫描,找到所有的mapper.xml映射文件mapperLocations: classpath*:mybatis/**/*Mapper.xml# 加载全局的配置文件configLocation: classpath:mybatis/mybatis-config.xml

xml中只写对象名字:比如下面的type=EcOrder

    <resultMap type="EcOrder" id="EcOrderResult"><result property="id"    column="id"    /><result property="feesAttributed"    column="fees_attributed"    /><result property="name"    column="name"    /><result property="specs"    column="specs"    /><result property="fixedCost"    column="fixed_cost"    /><result property="num"    column="num"    /><result property="money"    column="money"    /><result property="gmtCreateTime"    column="gmt_create_time"    /><result property="remark"    column="remark"    /><result property="status"    column="status"    /></resultMap>

5.mapper接口返回Integer的问题

java的mapper接口,可以返回int,也可以返回Integer,推荐返回Integer,因为一旦影响的数据量是0,或者更改的数据不存在,int就不能表达null的概念了,但是Integer可以表达null的概念。

参考资料:https://blog.csdn.net/u010648883/article/details/100544426

6.bigdecimal的小数点位数

mysql的bigdecimal数据库类型,小数点后面的数量不要写太多,一般2位就足够了。如果写多了,比如写11,mybatis返回double类型的时候就会报错了。

7.vue的前端panel组件换图标

若伊的前端,使用vue来实现,在实现四联panle的时候,会有换图标的要求,图标可以从下图中取得svg文件的文件名,设置为icon-class。这样图标就换了。

<svg-icon icon-class="monitor" class-name="card-panel-icon" />

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1005835.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Rating)

提供在给定范围内选择评分的组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Rating(options?: { rating: number, indicator?: boolean }) 从API version 9开始&#…

漏洞发现-漏扫项目篇武装BURP浏览器插件信息收集分析辅助

知识点 1、插件类-武装BurpSuite-漏洞检测&分析辅助 2、插件类-武装谷歌浏览器-信息收集&情报辅助 章节点&#xff1a; 漏洞发现-Web&框架组件&中间件&APP&小程序&系统 扫描项目-综合漏扫&特征漏扫&被动漏扫&联动漏扫 Poc开发-Ymal语…

【Claude 3】一文谈谈Anthropic(Claude) 亚马逊云科技(Bedrock)的因缘际会

文章目录 前言1. Anthropic的诞生2. Anthropic的“代表作”——Claude 3的“三驾马车”3. 亚马逊云科技介绍4. 强大的全托管服务平台——Amazon Bedrock5. 亚马逊云科技(AWS)和Anthropic的联系6. Claude 3模型与Bedrock托管平台的关系7. Clude 3限时体验入口分享【⚠️截止3月1…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:QRCode)

用于显示单个二维码的组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 二维码组件的像素点数量与内容有关&#xff0c;当组件尺寸过小时&#xff0c;可能出现无法展示内容的情况&#xff0c;…

【李沐论文精读】GPT、GPT-2和GPT-3论文精读

论文&#xff1a; GPT&#xff1a;Improving Language Understanding by Generative Pre-Training GTP-2&#xff1a;Language Models are Unsupervised Multitask Learners GPT-3&#xff1a;Language Models are Few-Shot Learners 参考&#xff1a;GPT、GPT-2、GPT-3论文精读…

基于PHP+Amaze+JQuery的学习论坛的设计与实现1.99

摘 要 互联网教育服务是在互联网技术、通信技术、计算机技术不断发展融合的基础之上&#xff0c;人们在对以信息为基础的各种各样应用需求快速增长的激励之下&#xff0c;在现在社会信息化的水平日益提高前提之下&#xff0c;迅速发展起来的一种全新大众服务方式。 笔者拟设计…

移动端uni-app小程序搜索高亮前端处理,同时可设置相关样式,兼顾性能

在uni-app中我们会遇到搜索高亮显示的需求 如下图&#xff1a; 起初用的是富文本实现 使用replaceAll方法取代搜索字段为一个 标签并设置相应的样式&#xff0c;但是小程序的并没有把 标签渲染出来&#xff0c;所以放弃了&#xff0c;下面原代码&#xff1a; /* 搜索字体变色…

JVM 类的加载篇

我们都知道一个类从加载到卸载一共分为七个过程 加载 - 链接(验证 - 准备 - 解析) - 初始化 - 使用 - 卸载 下文我们将详细解析这些过程 谁需要加载? 在Java中数据类型分为基本数据类型和引用数据类型,基本数据类型由虚拟机预定义,引用数据类型则需要类的加载 1.加载/装载(loa…

TCP 中的 Delay ACK 和 Nagle 算法

哈喽大家好&#xff0c;我是咸鱼。 今天分享一篇大佬的文章&#xff0c;作者&#xff1a;卡瓦邦噶&#xff01; 文章链接&#xff1a;https://www.kawabangga.com/posts/5845 教科书介绍的 TCP 内容通常比较基础&#xff1a;包括三次握手&#xff0c;四次挥手&#xff0c;数…

STL之deque容器代码详解

1 基础概念 功能&#xff1a; 双端数组&#xff0c;可以对头端进行插入删除操作。 deque与vector区别&#xff1a; vector对于头部的插入删除效率低&#xff0c;数据量越大&#xff0c;效率越低。 deque相对而言&#xff0c;对头部的插入删除速度回比vector快。 vector访问…

Docker数据卷的挂载

目录 1 概念 2 常用命令 3 操作步骤(主要讲在创建容器时的挂载) 3.1 挂载在默认目录 3.2 挂载在自定义目录 4 附加内容(查看容器的挂载情况) 1 概念 数据卷&#xff08;volume&#xff09;是一个虚拟目录&#xff0c;是容器内目录与宿主机目录之间映射的桥梁。这样容器内…

Java项目:基于springboot实现的OA协同办公系统(源码+数据库+毕业论文)

一、项目简介 本项目是一套基于Springbootvue实现的付费自习室系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、…

P8661 [蓝桥杯 2018 省 B] 日志统计

[P8661 蓝桥杯 2018 省 B] 日志统计 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路&#xff1a;双指针&#xff0c;对日志按时间从小到大进行排序。快指针指向的 i d id id点赞数加一&#xff0c;快慢指针做差得到之间的时间间隔&#xff0c;大于等于 k k k将慢指针指向…

day17_订单(结算,提交订单,支付页,立即购买,我的订单)

文章目录 订单模块1 结算1.1 需求说明1.2 获取用户地址1.2.1 UserAddress1.2.2 UserAddressController1.2.3 UserAddressService1.2.4 UserAddressMapper1.2.5 UserAddressMapper.xml 1.3 获取购物项数据1.3.1 CartController1.3.2 CartService1.3.3 openFeign接口定义 1.4 环境…

Unity制作马赛克效果

大家好&#xff0c;我是阿赵。   之前在玩怒之铁拳4里面&#xff0c;看到了马赛克场景转换的效果&#xff0c;觉得很有趣&#xff0c;于是也来做一下。 一、2D版本的马赛克转场效果 先看看视频效果&#xff1a; 马赛克转场 这里我是直接写shader实现的&#xff0c;我这里是把…

C++STL【list链表】

list 1. list介绍 list文档&#xff08;非官方&#xff09; 官方文档list是双向带头循环链表&#xff0c;它可以在常数范围内的任意位置进行插入和删除操作。list的迭代器是双向迭代器(bidirectional iterator)&#xff0c;它可以前后双向迭代。 由容器的底层结构决定&#xf…

添加路障-蓝桥杯-DFS

自己另辟蹊径想的新思路 果然好像还是不太行呀 import java.util.Scanner;public class Main {static int T;//样例组数static int n;//矩阵大小static int[] X {0,1,0,-1};static int[] Y {1,0,-1,0};static int[] X1 {1,0,-1,0};static int[] Y1 {0,-1,0,1};static int …

STM32FreeRTOS-事件组1(STM32Cube高效开发教程)

文章目录 一、事件组的原理和功能1、事件组与队列信号量特点2、事件组存储结构3、事件组运行原理 二、事件组部分函数1、xEventGroupCreate()创建事件组函数2、xEventGroupSetBits&#xff08;&#xff09;事件组置位函数3、xEventGroupSetBitsFromISR&#xff08;&#xff09;…

React进阶(Redux,RTK,dispatch,devtools)

1、初识Redux 是React最常用的集中状态管理工具&#xff0c;类似于Vue中的Pinia(Vuex)&#xff0c;可以独立于框架运行 作用&#xff1a;通过集中管理的方式管理应用的状态 案例-实现一个计数器 实现步骤&#xff1a; Redux管理数据的流程&#xff1a; state:一个对象&…

国科大网络行为学导论代码作业--更新中

一、Xray安装 参考自&#xff1a;Xray的安装与使用&#xff08;超详细&#xff09;_xray使用教程-CSDN博客 下载网址&#xff1a;Releases chaitin/xray GitHub 解压 双击安装 生成证书 cd到xray目录&#xff0c;生成证书 复制链接 然后cd到xray目录 .\xray_windows_amd6…