首页 > 其他分享 >Mybatis中 ${} 和 #{} 的用法与区别

Mybatis中 ${} 和 #{} 的用法与区别

时间:2023-04-12 20:46:15浏览次数:41  
标签:区别 传入 用法 111 user sql Mybatis 解析 id

#{}:将传入的数据都当成一个字符串,会对传入的变量自动加一个单引号。如:user_id = #{userId},如果传入的值是111,那么解析成sql时的值为user_id = '111',如果传入的值是id,则解析成的sql为user_id = 'id'。

${}:将传入的参数直接显示生成在sql中,且不加任何引号。如:user_id = ${userId},如果传入的值是111,那么解析成sql时的值为user_id = 111 , 如果传入的值是id,则解析成的sql为user_id = id。

#{} 可以防止SQL注入的风险(语句的拼接);但${}无法防止Sql注入。

大多数情况下还是经常使用#{},一般能用#的就别用 ${} ;

但有些情况下必须使用 ${}, 比如:MyBatis排序时使用order by 动态参数时需要注意,用 $ 而不是#。

标签:区别,传入,用法,111,user,sql,Mybatis,解析,id
From: https://www.cnblogs.com/FengZeng666/p/17311159.html

相关文章

  • mybatis全局变量 (mybatis.configuration.variables) 的应用
    mybatis.configuration.variables是一个可自定义的全局变量:在application.yml中定义:mybatis:mapper-locations:classpath:mapper/*.xmltype-aliases-package:com.example.entityconfiguration:variables:dbtype:mysqlmapper.xml中的使用:<!--更新......
  • mybatis.type-aliases-package 的作用
    在mapper.xml文件中的resultMap的type或者parameterType会用到自定义的POJO。如果在application.yml中没有配置mybatis.type-aliases-package的话,就需要写全限定类名:<selectid="selectByStudentById"resultType="com.example.domain.Student">SELECT*FROMstudent......
  • MyBatis
    1.简介MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java对象)为数......
  • 浅谈IAAS PAAS SAAS FAAS的区别
    目录一、IAAS二、PAAS三、SAAS四、FAAS一、IAASinfrastructure-as-a-service基础设施即服务公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用二、PAASplatform-as-a-service平台即服务公司在网上提供......
  • Containerd基础用法
    1)关于Containerd的基础知识从Docker1.11版本开始,Docker容器运行就不是简单通过DockerDaemon来启动了,而是通过集成containerd、runc等多个组件来完成的。虽然DockerDaemon守护进程模块在不停地重构,但是基本功能和定位没有太大的变化,一直都是CS架构,守护进程负责和DockerCl......
  • #include ""和#include <>的区别
    现study目录有三个目录:src、include、objsrc目录下有main.c、func1.cinclude目录下有func1.h//main.c#include"func1.h"#include<stdio.h>intmain(){func1();printf("thisismain\n");return0;}//func1.cvoidfunc1(){printf(......
  • MyBatis中XXMapper示例记录
    XXMapper.xml的结构示例如下,包括<resultMap>、<id>、<result>、<select>、<update>、<foreach>、<if>标签的使用:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper......
  • C#中HttpWebRequest的用法详解
    1、HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择。2、命名空间:System.Net3、HttpWebRequest对象不是利用new关键字创建的(通过构造函数)。 而是利用Create()方法创建的。4、你可能预计需要显示地调用一个“Send”方法,实际上不需要。5、调用HttpWebRe......
  • R语言:关于NA, <NA> , NaN的区别
    NA表示缺失项是数值型;表示缺失项是因子型;NaN表示缺失项为非数值型;来源:https://statisticsglobe.com/r-na/......
  • 【随手记】解决mybatis返回List<map>类型的数据时 无序 并且 不能返回空值
    返回结果无序希望表格的列能根据数据库查出来的数据保持一致,但是返回页面的结果集是无序在mybatis中使用List<Map>结构接收数据,发现输入的sql语句结果并不是按照输入的字段名顺序返回的。例如输入selectcol1,col2,col3fromtable却返回col2col3col1***......