当前位置: 首页 > news >正文

营销型网站建设口碑好网站权重对优化的作用

营销型网站建设口碑好,网站权重对优化的作用,2023楼市回暖潮无望了,招工 最新招聘信息怎么写MySQL中,_和%在LIKE模糊匹配中有特殊的含义: 下划线 _ 在LIKE模糊匹配中表示匹配任意单个字符。百分号 % 在LIKE模糊匹配中表示匹配任意多个字符(包括零个字符) 如果这种字符不经过处理,并且你的模糊查询sql语句书写…

MySQL中,_和%在LIKE模糊匹配中有特殊的含义:

  • 下划线 _ 在LIKE模糊匹配中表示匹配任意单个字符。
  • 百分号 % 在LIKE模糊匹配中表示匹配任意多个字符(包括零个字符)

如果这种字符不经过处理,并且你的模糊查询sql语句书写如下,那么在你的前端页面搜索框中输入下划线或者百分号时候,搜索到的数据就是全量数据,未达到我们的预期。

<select id="findByPattern" resultType="com.example.entity.YourEntity">SELECT * FROM your_table WHERE your_column LIKE concat('%', #{pattern}, '%')
</select>

如何将这种特殊字符变成普通字符而不是 sql的单字符通配符?

在XML配置的MyBatis中处理LIKE查询时,如果前端传递的值中包含了下划线_,并且你想要这个下划线被视为普通字符而不是SQL的单字符通配符,你需要在MyBatis的XML映射文件中对这个字符进行转义。

在MyBatis中,你可以使用<![CDATA[]]>区块来避免XML解析错误,并在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.YourMapper"><!-- 定义一个查询操作 --><select id="findByPattern" resultType="com.example.entity.YourEntity">SELECT * FROM your_table WHERE your_column LIKE CONCAT('%', REPLACE(#{pattern}, '_', '\\_'), '%')</select></mapper>

在这个例子中,REPLACE(#{pattern}, '_', '\\_')函数将传入的参数中的所有下划线_替换为转义后的下划线\\_。CONCAT函数用于在参数的前后添加百分号%作为通配符。

如上代码只处理了单一下划线的情况,如果前端传递的值中包含的下划线_或百分号%都处理呢,下面是一个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.YourMapper"><!-- 定义一个查询操作 --><select id="findByPattern" resultType="com.example.entity.YourEntity">SELECT * FROM your_table WHERE your_column LIKE CONCAT('%', #{escapedPattern}, '%')</select></mapper>

在这个例子中,escapedPattern是经过转义处理的搜索模式。在Java代码中,你需要在传递参数之前对搜索词进行转义处理: 

public class YourService {private final SqlSessionFactory sqlSessionFactory;public YourService(SqlSessionFactory sqlSessionFactory) {this.sqlSessionFactory = sqlSessionFactory;}public List<YourEntity> search(String searchTerm) {try (SqlSession session = sqlSessionFactory.openSession()) {// 在这里处理参数,确保它包含了SQL LIKE通配符,并对特殊字符进行转义String escapedPattern = searchTerm.replace("_", "\\_").replace("%", "\\%");return session.selectList("com.example.mapper.YourMapper.findByPattern", escapedPattern);}}
}

在这个例子中,searchTerm是前端传递的原始字符串,它可能包含下划线_和百分号%。在Java代码中,我们使用replace方法对这些特殊字符进行转义处理,然后将处理过的搜索词传递给MyBatis进行LIKE查询。

并且使用try-with-resources写法

try (SqlSession session = sqlSessionFactory.openSession())

在try-with-resources语句中,你可以声明一个或多个资源,这些资源在try块执行完毕后会自动关闭。在这种情况下,SqlSession会在try块执行完毕后自动关闭,无需手动调用close方法。这种写法可以确保资源被正确关闭,即使在发生异常的情况下也能够执行关闭操作,从而避免资源泄漏。

http://www.yayakq.cn/news/978042/

相关文章:

  • 网站开发环境有哪些php搜阅网站建设
  • 如何做网站走查wordpress动态标签
  • 关于网站建设投稿信用网站建设工作总结
  • 南通市城乡建设局网站wordpress读取新闻
  • 九里徐州网站开发公关团队
  • 做网站用什么代码编写网站服务器租用平台
  • 有什么那个网站让别人做网站要注意什么6
  • 建设工程网站单位名单大家都用哪个网站做读书笔记
  • 深圳便宜网站建设网站建设思路方向
  • 做网站推广需要什么专业平台网站建设有哪些方面
  • 寻找网站开发wordpress如何发布文件夹
  • 网站怎样自动文字排版制作主页的软件
  • php自适应网站开发wordpress收费主题激活
  • 秦皇岛高端网站设计成都交易网站建设
  • 网站建设项目管理大型网站建设济南兴田德润o团队怎么样
  • 企业网站建设方案书范本网络建设存在的问题
  • 北京建工博海建设有限公司网站网站建设外包项目
  • 做商城网站要哪些流程图个人做什么网站
  • 网站建设综合实训心得null wordpress theme
  • 网站集约化建设方案网站广告图片在线制作
  • 电商网站规划建设优化一个网站步骤
  • 专业素材网站小企业网站维护什么东西
  • 专业柳州网站建设多少钱帝国网站怎么仿站
  • 合肥新格建站网网站运行及维护
  • 建站达建网站防止爬虫的办法
  • 商城网站主要内容公司官网如何制作
  • 巩义做网站汉狮公司做订单管理网站用什么软件
  • 网站二维码可以做长按识别吗手机搜索引擎排行榜
  • 怎做网站转app长沙本地招聘网最新招聘信息
  • 西安自适应网站建设网站制作 常州