mybatis mapper.xml文件中$和#的使用区别

#{}表示一个占位符即?,可以有效防止sql注入。在使用时不需要关心参数值的类型,mybatis会自动进行java类型和jdbc类型的转换。
#{}可以接收简单类型值或pojo属性值,如果传入简单类型值,#{}括号中可以是任意名称。

<!-- 根据名称模糊查询用户信息 -->
    <select id="findUserById" parameterType="String" resultType="user">
        select * from user where username like CONCAT(CONCAT('%', #{name}), '%')
    </select>

${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换。
${}可以接收简单类型值或pojo属性值,如果传入简单类型值,${}括号中名称只能是value。

<!-- 根据名称模糊查询用户信息 -->
    <select id="selectUserByName" parameterType="string" resultType="user">
       select * from user where username like '%${value}%'
    </select>

对于order by排序,使用#{}将无法实现功能,应该写成如下形式:

ORDER BY ${columnName}

另外,对于mybatis逆向工程生成的代码中,进行模糊查询调用andXxxLike()方法时,需要手动加%,如下:

CustomerExample customerExample=new CustomerExample();
        customerExample.or().andNameLike("%"+name+"%");
在 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、付费专栏及课程。

余额充值