mysql数据库中的反斜杠”\“怎么使用Java进行转义

发布时间:2020-11-24 15:15:12

来源:亿速云

阅读:88

作者:Leah

这期内容当中小编将会给大家带来有关mysql数据库中的反斜杠”\“怎么使用Java进行转义,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

前言

在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,测试:

i.

*条件 为:name = ?

*筛选值 为:

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

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

这个看起来是比较正常的

ii.

*条件 为:name like ?

*筛选值 为:

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

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

开始不变得奇怪了…

iii.

*条件 为:name like ‘%' ?

*筛选值 为:

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

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

和 ii. 有点类似

iv.

*条件 为:name like ? ‘%'

*筛选值 为:

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

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

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

v.

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

*筛选值 为:

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

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

和 iv. 类似了

4,分析:

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

5,结论:

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

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

上述就是小编为大家分享的mysql数据库中的反斜杠”\“怎么使用Java进行转义了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

反斜杠转义mysql java_mysql数据库中的反斜杠”\“怎么使用Java进行转义相关推荐

  1. MariaDB/MySQL从数据库中选择随机的行

    MariaDB/MySQL从数据库中选择随机的行 一个比较传统的做法是使用sql自带的rand函数,从而达到随机排序的目的. SELECT column FROM table ORDER BY RAN ...

  2. oracle sql为null值,在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办

    在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 ISNULL ( check_expression , replacem ...

  3. 自定义tt文本模板实现MySql指数据库中生成实体类

    自定义tt文本模板实现MySql指数据库中生成实体类 1.在项目中依次点击"添加"/"新建项",选择"文本模板",输入名称后点击添加. 2. ...

  4. MySql 查询数据库中所有表名

    MySql 查询数据库中所有表名 查询数据库中所有表名 select table_name from information_schema.tables where table_schema='csd ...

  5. mysql 获取数据库中最大的日期

    mysql 获取数据库中最大的日期 select DATE_FORMAT(max(over_time),'%Y-%m-%d') from 表名格式化参考 %a 缩写星期名 %b 缩写月名 %c 月,数 ...

  6. mysql选择排序规则_关于mysql创建数据库中字符集和排序规则的选择

    1:字符集: 一般 主要选择两种: 1:utf8   (看unicode编码区从1 - 126就属于传统utf8区,),一般都够用,除非需要存储特殊字符 2:utf8mb4(utf8mb4兼容utf8 ...

  7. x509mysql_涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系 <>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确. mysql验证用户需要检查3项值:用户名.密码和主机来源(user.passwor ...

  8. ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串

    题目描述 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串. 输入 一行字符 输出 逆序后的字符串 样例输入 123456abcdef 样例输出 fedcba654321 来源 ...

  9. 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。

    题目描述 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串. 输入 一行字符 输出 逆序后的字符串 样例输入 123456abcdef 样例输出 fedcba654321 #i ...

最新文章

  1. 超强激光SLAM LIO-SAM!高精度机器人定位建图!
  2. java读取配置文件的几种方法
  3. 如何删除Android上ListViews之间的行?
  4. 依赖注入(DI)和Ninject,Ninject
  5. Asp.net上传文件限制,在大于5M的时候出现DNS解析错误,解决方法。
  6. Angular 不同种类 Module 的介绍
  7. 使用 jQuery Mobile 与 HTML5 开发 Web App (八) —— jQuery Mobile 工具栏
  8. html5 input min,HTML Input Time min用法及代码示例
  9. Remove_if 删除vector数据
  10. 21_在线支付原理与实现
  11. linux系统能运行iis吗,Linux 下可以安装 IIS 吗
  12. 虚拟机文件上传至dsm服务器,没NAS也能体验群晖:VMware虚拟机安装DSM详细安装步骤...
  13. wps xml转换表格_PDF转换神器安装步骤
  14. linux应用项目(一)数码相框(2)数码相框之字符编码与字符的点阵显示
  15. [tensorflow] 多维矩阵的乘法
  16. 【CC2530入门教程-05】CC2530的串行接口原理与应用
  17. FaceBook 遭遇有史以来全球最大宕机
  18. python eml解析_使用 python eml-parser 对 eml文件进行格式化
  19. python中from import_Python中的import和from import
  20. 轻量型网络之MobileNetV2: Inverted Residuals and Linear Bottlenecks论文学习

热门文章

  1. 用python做频数分析_使用Python进行描述性统计
  2. xss挖掘思路分享_新手指南 | permeate靶场漏洞挖掘思路分享
  3. weblogic内存修改linux,weblogic10.3.5 内存修改详解
  4. mysql8添加索引_MySQL8.0新特性-新的索引方式
  5. 空投坐标怎么看6_嗦粉不咯?桂林米粉店将分三四五星级,你怎么看? 旅行 6 月 4 日热点速递...
  6. mysql入门到跑路_Mysql入门二十小题(DBA老司机带你删库到跑路)2018.11.26
  7. oracle 11gr2 asm安装,OEL6.1下oracle 11gr2 ASM安装
  8. java二重循环计数_java的二重循环代码样例
  9. ARIMA模型的建模和预测
  10. matlab出现红色括号,想让大家看下标红地方为什么说有括号问题