Mybatis中mapper.xml中的模糊查询

1,mybatis中的mapper文件中是一些sql的逻辑化存储,所以他们还是要遵循基本的数据库的语法规范,所以关于模糊查询就还是用like关键字用%去匹配一个

或者多个字符,但是因为模糊查询的时候引入的相当于是一个字符串而不是直接进行传值操作(有拼接%的操作)所以不能直接使用#{},对于字符串的取值

可以使用${}但是这样取到字符串的同时带来了SQL注入的危险所以也不是最好的办法

2,关于此部分的解决方案也是由大神提供,解决原理不是很清楚,但是至少很管用大笑

将原来的需要进行模糊查询的地方修改为:like concat(‘%’,#{字段},‘%’);

打完收工

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我明白了。对于第一个问题,您需要修改db.properties文件的数据库配置,这个文件通常位于项目的resources目录下,您可以使用文本编辑器打开它,然后修改其的数据库配置信息,比如数据库的地址、用户名、密码等。 对于第二个问题,您需要在com.mybatis.mapper.UserInfoMapper.xml文件添加一个根据用户编号获取用户信息的动态SQL语句。首先,您需要定义一个select语句,然后使用where元素来定义查询条件,最后使用resultMap元素来指定查询结果的映射关系。例如: ``` <select id="getUserById" resultMap="userResultMap"> SELECT * FROM user_info WHERE id = #{id} </select> <resultMap id="userResultMap" type="com.mybatis.entity.UserInfo"> <result column="id" property="id"/> <result column="username" property="username"/> <result column="password" property="password"/> <result column="email" property="email"/> <result column="phone" property="phone"/> </resultMap> ``` 对于第三个问题,您需要在com.mybatis.mapper.UserInfoMapper.xml文件添加一个根据用户名模糊查询用户的动态SQL语句。同样地,您需要定义一个select语句,然后使用where元素来定义查询条件,其like元素可以用于模糊匹配。例如: ``` <select id="getUserByUsername" resultMap="userResultMap"> SELECT * FROM user_info WHERE username like '%${username}%' </select> ``` 需要注意的是,这种方式存在SQL注入的风险,建议使用#{}占位符来避免这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值