添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

这篇文章主要给大家介绍了关于通过java连接 mysql 对反斜杠”\“转义的测试的相关资料,文中通过实例代码介绍的非常详细,对大家理解反斜杠”\“转义具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

在java中,反斜杠“\”转义是“\”,因此表示一个“\”要使用“\\”,如果是 正则表达式 ,那么表示一个“\”需要用“\\\\”,在mysql中,反斜杠转义依然是“\”,和java相同。

现在问题是:如果mysql中一个字段的内容包含反斜杠,然后通过java连接mysql去筛选这个字段所在的条目,要怎么写才能将该字段筛选出来呢?下面就是一个实验:

1,先建立测试数据:


CREATE TABLE `test` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`)
insert into test (name) values ('\\'), ('\\\\');
登录后复制

向数据库中插入2条数据,name的值分别是“\”和“\\”。

2,使用jdbc连接mysql,然后测试筛选条件:


Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
PreparedStatement pstmt = conn.prepareStatement("select * from test where *条件"); // “*条件”见下文
pstmt.setString(1, "*筛选值"); // “*筛选值”见下文
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
 System.out.println(rs.getString("name"));
}
登录后复制

3,测试:

*条件 为:name = ?

*筛选值 为:

“\\”可以筛选出name为“\”的数据

“\\\\”可以筛选出name为“\\”的数据

这个看起来是比较正常的

*条件 为:name like ?

*筛选值 为:

“\\”或“”\\\\可以筛选出name为“\”的数据

“\\\\\\”或“\\\\\\\\”可以筛选出name为“\\”的数据

开始不变得奇怪了…

*条件 为:name like ‘%' ?

*筛选值 为:

“\\”或“\\\\”可以筛选出name为“\”和“\\”的数据

“\\\\\\”或“\\\\\\\\”可以筛选出name为“\\”的数据

和 ii. 有点类似

*条件 为:name like ? ‘%'

*筛选值 为:

“\\\\”可以筛选出name为“\”和“\\”的数据

“\\\\\\\\”可以筛选出name为“\\”的数据

又变得好像正常了…类似正则中的转义

*条件 为:name like ‘%' ? ‘%'

*筛选值 为:

“\\\\”可以筛选出name为“\”和“\\”的数据

“\\\\\\\\”可以筛选出name为“\\”的数据

和 iv. 类似了

4,分析:

使用“=”方式筛选貌似就是常规理解中的转义,但是一旦使用了“like”就开始变得奇怪了,从测试来看,使用“like”筛选有些类似正则式,不过没有使用“%”占位符的筛选中常规转义依然有效,另外,奇怪的是 ii. 和 iii. 中的6根反斜杠是个什么鬼…完全不能理解…

5,结论:

sql语句是“=”筛选时,java就使用常规转义即可

sql语句是“like”筛选时,最好使用正则式转义

总结

以上就是关于Java连接mysql对反斜杠”\“转义的测试详解的详细内容,更多请关注php中文网其它相关文章!

PHP函数输出结果显示为Array,而非预期的值 我有一个php脚本,我需要将日期格式从CYYMMDD更新为MM/DD/YYYY,我写了一个函数来帮我做这个,但是当我打印它时,结果显示为'Array'。//将日期格式从CYYMMD... P粉722409996来自于2024-02-04 11:38:12 为什么我无法将 const 变量传输到不同的 React 文件 所以我试图将const变量从一个文件传输到另一个文件。由于某种原因,我无法访问它,并且它不允许我在文本文件中显示它。下面分别是homepage.js代码和pay.js文件。我正在尝... P粉593118425来自于2024-02-04 11:46:16 MySQL:无法更新存储函数/触发器中的表“订单”,因为它已被调用此存储函数/触发器的语句使用 我在MySQL数据库中有一个名为orders的表。在我们收到资金之前,payment_date属性为Null,此时它会更新为日期。一旦更新了payment_date属性,order... P粉282627613来自于2024-02-04 11:46:04 寻求 MySQL 查询帮助 - 计算分组范围内的时间戳计数 有人会认为这很简单,但一整晚都在拼命努力。我有一个传感器警报日志,想要生成一个表格,其中包含每个不同传感器24小时、168小时(1周)和336小时(2周)内的事件的简单计数。我对M... P粉026665919来自于2024-02-04 11:20:54 当用户提交图像时,是否可以动态更新图像“图库”? 我正在创建一个网站,展示我祖父的所有照片。由于我没有所有照片,而且还会有其他人来来去去,我认为有一个网站让他们可以提交照片然后查看它们的“数据库”会很不错。目前,我有一个Infin... P粉715228019来自于2024-02-04 11:28:23 Buttons 标签对于 Jquery Attr 的工作至关重要 atrr函数没有给出所需的响应,我有一个小代码,可以从外部API中获取数据,该API在dict中有几个数据。<divid="facet-knowledge-pane... P粉141035089来自于2024-02-04 11:27:56 如何测试微服务中的功能拆分 我有一个功能,分为3个使用kubernetes运行的微服务。根据第一个的输入,第二个执行操作并自动创建一个kubernette来处理最后的结果。我想做一个测试来检查整个过程,但我不... P粉517814372来自于2024-02-04 10:58:15 Taildwind css 底部对齐 您好,我只是尝试发送到其父级的底部:<formclass="flexflex-colw-full"(submit)="updatePhoto(t... P粉343408929来自于2024-02-04 11:06:37 如何根据特定条件在PHPMailer中选择SMTP帐户? 在我的WordPressv6.0中,我配置了通过$phpmailer发送SMTP邮件([email protected]),工作正常。我想使用另一个SMTP电子邮件帐户(co... P粉315680565来自于2024-02-04 10:43:11 文件重组导致选择、超链接和导入模板出现问题? 我正在使用jQuery将通用模板文件导入到页面的某些部分。一切都很完美,直到我以不同的方式组织我的文件结构。现在,除了标题之外,我的SELECT下拉列表无法正常工作,而且即使VSC... P粉436410586来自于2024-02-04 10:37:52