MyBatis Mapper.xml文件中 MySql的SQL语句比较大小

本文详细介绍了MyBatis框架中#与$符号在SQL动态拼接中的使用区别,包括它们如何处理传入的数据、对SQL注入的防护能力及适用场景等关键信息。
&lt;      <  小于号
&gt;     > 大于号
&amp;    &
&apos;    ’单引号
&quot;    " 双引号

 

 

 

 

 

 

 

 

 

 

 

MyBatis 中的 # 和 $ 的区别如下:

 

  1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".  

  2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id,  如果传入的值是id,则解析成的sql为order by id.

     3. #方式能够很大程度防止sql注入。

    4.$方式无法防止Sql注入。

   5.$方式一般用于传入数据库对象,例如传入表名.

   6.一般能用#的就别用$.

   MyBatis排序时使用order by 动态参数时需要注意,用$而不是#

在 IntelliJ IDEA 中,MyBatismapper.xml 文件无法识别表字段和表名,可尝试以下解决办法: ### 配置数据源 在 IDEA 中配置数据库连接,让 IDE 可以直接访问数据库,获取表结构信息。具体步骤如下: 1. 打开“Database”工具窗口,点击“+”,选择相应的数据库类型,如 MySQL。 2. 填写数据库连接信息,包括主机、端口、用户名、密码等,点击“Test Connection”测试连接是否成功,成功后点击“OK”保存。 ### 配置 MyBatis 插件 使用 MyBatis 相关插件辅助识别,例如 MyBatis Plugin。 1. 打开 IDEA 的“File” -> “Settings” -> “Plugins”。 2. 在搜索框中输入“MyBatis Plugin”,点击“Install”安装,安装完成后重启 IDEA。 ### 配置映射文件 确保 mapper.xml 文件中的命名空间(namespace)、SQL 语句中的表名和字段名正确,且与数据库中的实际信息一致。示例如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper"> <select id="getUserById" resultType="com.example.entity.User"> SELECT id, username, password FROM users WHERE id = #{id} </select> </mapper> ``` ### 启用 MyBatis 框架支持 确保 IDEA 正确识别项目为 MyBatis 项目,启用框架支持: 1. 打开“File” -> “Project Structure”。 2. 在“Modules”中,选择项目模块,点击“+”,选择“MyBatis”。 3. 配置 MyBatis 的配置文件(通常为 mybatis-config.xml)和 mapper.xml 文件的路径。 ### 检查依赖 确保项目的 pom.xml(如果是 Maven 项目)或 build.gradle(如果是 Gradle 项目)中包含 MyBatis 和数据库驱动的依赖。以 Maven 为例: ```xml <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> </dependencies> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值