MyBatis学习笔记-06.MyBatis实现模糊查询的三种方式以及在MyBatis中#{}和${}的区别

本文介绍了在MyBatis中实现模糊查询的三种方法,包括直接使用`like`,利用`concat`函数以及使用`${}`。同时详细阐述了`#{}`和`${}`的区别,`#{}`能防止SQL注入并自动进行类型转换,而`${}`则直接拼接SQL,不进行类型转换,可能导致SQL注入问题。
摘要由CSDN通过智能技术生成

MyBatis进行数据库查询时,有的业务需要进行模糊查询,按我们正常的逻辑进行模糊查询,会发现这是个坑,现将问题以及实现方式整理如下:

本过程采用Log4j进行记录,y通过日志记录方便查看sql语句。Log4j配置请查看学习笔记05

环境搭建请参考之前的笔记,本过程对实现模糊查询的三种方式进行重点标注。

一、MyBatis实现模糊查询

在数据库中,我们书写模糊查询的sql为

select * from 某表 where 某字段 like '%某某某%'

查询 某表 中 某字段中 包含 某某某 的数据

本例我们以在学生表查询学生姓名中 包含 “元”的学生,按照上述sql书写方式进行书写

数据库stundet表结构如下:


student表内容如下:


映射文件内容为:

<?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.yuan.model.Student">
	<select id="queryByLikeName" parameterType="string" resultType="com.yuan.model.Student">
		select * from student where sname like '%#{sname}%'
	</select>
</mapper>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值