MyBatis 实现复杂查询

news2024/11/25 19:11:32

 #{ } 与 ${ } 的区别(重点)

#{ } 与 ${ } 在MyBatis中都是用于替换SQL参数的, 主要以下几点不同:

  1. 方式不同:      ${ } 是直接替换为传递的参数,   #{ } 则是先预处理,然后再设置参数 
  2. 安全性不同:         ${ } 存在SQL注入的风险, #{ }则不存在安全问题
  3. 使用场景不同:        一般情况下,能用 #{ } 就尽量用他, 如果传递的是 SQL 命令或 SQL 关键字,则需要使用  ${ },但在使用前一定要做好安全验证(保证传递的参数是可被穷举的);

什么是SQL注入

SQL注入就是指服务器对用户输入的数据过滤不严谨, 使得攻击者在输入数据之后添加了SQL语句, 从而获得了非法的权限.

例如, 我们登录操作需要用户输入 账号 和 密码

此时黑客就可通过SQL注入的方式,不需要知道账号密码 也能获取数据

查询结果为null的原因

大概率可能是, model包中类的属性名与数据库中表的字段名不一致, 那么查询的结果就为null

解决方案:

  1. (最简单的方式)  将类中的属性名与数据库表的字段名保持一致
  2. 通过SQL语句中的 as 对字段名进行重命名,将字段名重命名为类中的属性名
  3. 定义一个resultMap, 将字段名与属性名 进行手动映射

通过 like 进行模糊查询

接口:

xml实现接口:

测试:

成功查询到两条数据

实现多表查询

直接通过注释@Select 来实现接口

测试:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GO】HTTP标准库1 - http协议基础知识

目录 一 http协议 1 http协议 2 http request 3 请求方法 4 URL 5 协议版本 6 请求头 7 Content-type 9 POST与GET区别 10 HTTP Response 11 常见的状态与话术 12 HTTP 响应头 13 完整的HTTP响应 14 HTTPS 一 http协议 1 http协议 HTTP(HyperText Tra…

Python从0到100(四):Python中的运算符介绍

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

Centos7 安装postgresql14后无法连接数据库

1、数据库服务器允许外部访问5432端口。 2、postgresql.conf 3、pg_hba.conf a、制定某个IP(192.168.0.107)访问 b、指定ip段访问 允许10.1.1.0~10.1.1.255网段登录数据库 host all all 10.1.1.0/24 trust c、指定全网访问 host a…

盲盒抽卡机小程序——开启神秘之旅!

亲爱的朋友们,欢迎来到盲盒抽卡机小程序!这里,是一个充满神秘与惊喜的世界,让你随时随地体验抽卡的乐趣。在这里,你可以轻松尝试各种盲盒,发现隐藏的宝藏,感受心跳加速的刺激。 【丰富多样的盲…

语音情感识别python项目

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 什么是语音情感识别? 语音情感识别,缩写为 SER,是试图从语音中识别人类情感和情感状态的行为。这是利用了这…

docker + nginx打包前端镜像

项目场景&#xff1a; 前端使用angular开发&#xff0c;Dockerfile如下&#xff1a; FROM nginx:1.16.1 AS base WORKDIR /app COPY nginx.conf.template /etc/nginx/ CMD ["/bin/bash", "-c", "envsubst ${APP_VERSION} < /app/index.html > …

Python环境安装及Selenium引入

Python环境安装 环境下载 Download Python | Python.org 环境安装 需使用管理员身份运行 查看环境是否安装成功 python --version 如果未成功则检查环境变量配置 安装 Selenium 库 pip install selenium Selenium 可以模拟用户在浏览器中的操作&#xff0c;如点击按钮、填写…

Vue3全家桶 - VueRouter - 【2】重定向路由

重定向路由 在路由规则数组中&#xff0c;可采用 redirect 来重定向到另一个地址&#xff1a; 通常是将 / 重定向到 某个页面&#xff1b; 示例展示&#xff1a; router/index.js&#xff1a;import { createRouter, createWebHashHistory, createWebHistory } from vue-route…

51单片机基础篇系列-中断系统处理过程中断编程

&#x1f308;个人主页:会编辑的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 80C51单片机中断处理过程 中断相应过程&#xff1a; 中断源有中断请求 此中断源的中断允许位为1 CPU开中断&#xff08;即EA-1&#xff09;.以上三条同时满足&#xff0c;CPU才有…

okcc呼叫中心外呼任务为何启动后会自动暂停?

OKCC呼叫中心系统是一套完整的呼叫中心与管理平台,为电话营销型企业专门设计的电销平台与客服平台。OKCC系统集电话营销功能与热线客服功能于一体,兼具呼入呼出功能。本呼叫中心支持独立的计费系统、话务系统、客户系统、工单管理系统,是一套完善的高效的呼叫中心系统 那我们在…

基于EasyCVR视频技术的流媒体视频融合与汇聚管理系统建设方案

流媒体视频融合与汇聚管理系统可以实现对各类模块化服务进行统一管理和配置等操作&#xff0c;可实现对应用服务的整合、管理及共享&#xff0c;以标准接口的方式&#xff0c;业务平台及其他第三方业务平台可以方便地调用各类数据&#xff0c;具有开放性和可扩展性。在流媒体视…

如何不依赖Unity直接解压unitypackage的内容

使用场景 我们都知道unity的资源导出是导出成.unitypackage文件,如果要里面的内容,得打开Unity,将unitypackage导入进去才能看到里面的内容。 但是很多时候我们下了几十个unitypackage资源包,又不清楚好不好用,而且导入之后编译特别慢,unity又不提供批量解压的功能,所…

Leangoo领歌免费敏捷工具项目“版本发布”功能上线

Leangoo领歌是款永久免费的专业的敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo领歌上手快、实施成本低&#xff0c;可帮助企业快速落地敏捷&#xff0c;提质增效、缩短周期、加速创新。…

String 底层为什么使用 final 修饰?

1、典型回答 对于这个问题&#xff0c;Java之父詹姆斯 高斯林&#xff08;James Gosling&#xff09; 是这样回答的&#xff1a; I would use an immutable whenever I can 翻译为中文&#xff1a;只要允许&#xff0c;我就会使用不可变对象 而作为普通人的我们来说&#xff0…

【历年论文真题考点汇总】与【历年论文原题2009~2023年文字版记录】(2024年软考高级系统架构设计师冲刺知识点总结-论文篇-先导篇)

历年真题论文题考点汇总 历年软考系统架构设计师论文原题(2009-2022年) 因最新的2023年目前仅能搜索到回忆版,等楼主搜集到真题会更新最新版到本文中。 注意系统架构设计师一年只下半年开考,项目管理师一年两次开考。 2022年下半年-论文原题 试题1:论基于构件的软件开发…

智海Mo 平台与 Datawhale 携手浙江大学,共襄 AI+X 高校行!

2024年3月9日&#xff0c;一场以"AIX 高校行"为主题的活动在浙江大学成功举办。本次活动由 Datawhale 与杭州市人工智能学会主办&#xff0c;浙江大学人工智能研究所、浙江大学控制科学与工程学院联合主办&#xff0c;浙江大学学生人工智能协会承办&#xff0c;趋动云…

基础小白快速入门web前端开发技术------->hbuilder的下载安装以及简易的网页最开始制作

工欲善其事&#xff0c;必先利其器&#xff0c; 在我们学习开发网页设计&#xff0c;我们首先需要一个良好的开发工具 这里我比较推荐hbuilder这个 只需要进入官网傻瓜下载&#xff0c;傻瓜安装 https://dcloud.io/ 点击hbuilder选择版本进行下载安装即可 hbuilder的新建文件…

【VUE合并同一列相另的行的数据合并为一行:span-method】亲测有用

【VUE合并同一列相另的行的数据合并为一行&#xff1a;span-method】亲测有用 第一步&#xff1a; 给table加对应的标签的属性 :data"list" :span-method"arraySpanMethod"第二步&#xff1a; 在methods中添加对应的处理的方法 arraySpanMethod({ row, …

MQTT+ONENET+STM32+LWIP驱动

前言 近段时间由于项目需求&#xff0c;需要将原来的项目增加应用层的MQTT协议&#xff0c;由于不懂MQTT所以从B站学习了正点原子的lwip课程&#xff0c;看完后需要进行实践&#xff0c;所以选择了ONENET平台来作为学习的时间的平台。 1、学习准备 先下载工具&#xff1a; …

鸿蒙原生应用元服务开发-WebGL网页图形库开发接口说明

一、场景介绍 WebGL主要帮助开发者在前端开发中完成图形图像的相关处理&#xff0c;比如绘制彩色图形等。目前该功能仅支持使用兼容JS的类Web开发范式开发。 二、接口说明 表1 WebGL主要接口列表 本文参考引用HarmonyOS官方开发文档&#xff0c;基于API9。