慕的地10843

我已经用Java开发了自己的MySQL转义方法(如果对任何人都有用的话)。请参阅下面的类代码。警告:如果启用了任何_反斜杠_转义SQL模式,则出错。private static final HashMap sqlTokens;private static Pattern sqlTokenPattern;static{

//MySQL escape sequences: http://dev.mysql.com/doc/refman/5.1/en/string-syntax.html

String[][] search_regex_replacement = new String[][]

{

//search string     search regex        sql replacement regex

{   "\u0000"    ,       "\\x00"     ,       "\\\\0"     },

{   "'"         ,       "'"         ,       "\\\\'"     },

{   "\""        ,       "\""        ,       "\\\\\""    },

{   "\b"        ,       "\\x08"     ,       "\\\\b"     },

{   "\n"        ,       "\\n"       ,       "\\\\n"     },

{   "\r"        ,       "\\r"       ,       "\\\\r"     },

{   "\t"        ,       "\\t"       ,       "\\\\t"     },

{   "\u001A"    ,       "\\x1A"     ,       "\\\\Z"     },

{   "\\"        ,       "\\\\"      ,       "\\\\\\\\"  }

};

sqlTokens = new HashMap();

String patternStr = "";

for (String[] srr : search_regex_replacement)

{

sqlTokens.put(srr[0], srr[2]);

patternStr += (patternStr.isEmpty() ? "" : "|") + srr[1];

}

sqlTokenPattern = Pattern.compile('(' + patternStr + ')');}public static String escape(String s){

Matcher matcher = sqlTokenPattern.matcher(s);

StringBuffer sb = new StringBuffer();

while(matcher.find())

{

matcher.appendReplacement(sb, sqlTokens.get(matcher.group(1)));

}

matcher.appendTail(sb);

return sb.toString();}

mysql如何避免特殊字符查询_如何避免MySQL中的特殊字符?相关推荐

  1. MySQL多重条件模糊查询_简单实现mysql多字段模糊查询

    在后台的项目中,会经常遇到,就是信息的查找,这里就举个简单的例子,如搜索某一个产品的信息,在一个表里面有多个字段,而搜索的内容可能是其中的某个字段,这样只有多字段查询才能实现. MySQL多字段模糊查 ...

  2. mysql操作日志记录查询_详解mysql数据库参数log_timestamps--控制日志记录使用的时区...

    概述 最近发现之前安装的MySQL 5.7.27,其中的error log.general log日志里面日志时间的时区不对. 思路: mysql 5.7.2新增了参数 log_timestamps, ...

  3. mysql文件扩展名查询_如何通过MySQL查询获取文件的文件扩展名?

    为了获得作为SQL查询结果的文件的文件扩展名,可以使用SUBSTRING_INDEX(). 语法如下select substring_index(yourColumnName,'.',-1) as a ...

  4. mysql函数返回表类型_如何从MySQL函数返回表?

    您不能从MySQL函数返回表.该函数可以返回字符串,整数,字符等.要从MySQL返回表,请使用存储过程,而不是函数. 让我们首先创建一个表-mysql> create table DemoTab ...

  5. 正则匹配查询_如何用MySQL中的正则表达式过滤掉配送单

    需求 最近在用mysql做一个配送单的筛选的需求,比如一个订单表里的订单号有多种,比如以A,B,C,D,F开头的订单,我要同时过滤掉A,B与C的订单,那我要如何做呢?这里你们有其他方法的话,不妨留言哈 ...

  6. mysql内连接部门平均值_详解MySql基本查询、连接查询、子查询、正则表达查询_MySQL...

    查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...

  7. oracle锁表查询_专业解决 MySQL 查询速度慢与性能差

    Java识堂,一个高原创,高收藏,有干货的微信公众号,一起成长,一起进步,欢迎关注 什么影响了数据库查询速度 1.1 影响数据库查询速度的四个因素 1.2 风险分析 QPS: QueriesPerSe ...

  8. mysql获得每条记录_如何在MySQL查询结果集中得到每条记录的行号

    如果需要在查询语句返回的列中包含一列表示该条记录在整个结果集中的行号, ISO SQL:2003 标准提出的方法是提供 ROW_NUMBER() / RANK() 函数. Oracle 中可以使用标准 ...

  9. mysql版本号查询_三、mysql登录详解及版本号查询

    1.用window+r,输入cmd,用mysql -uuser -ppassword登录时出现'mysql'不是有效的内部命令? 答:这是因为没有配置MySQL的环境变量path所致. MySQL的环 ...

最新文章

  1. 禅道设置bug模板_JPress v3.0 beta.2 发布,修复 bug 和完善产品细节
  2. 模板模式(template)解析例子
  3. php面向对象封装mysql_php mysqli面向对象封装mysql数据库常用操作
  4. Flex sdk4 布局与更新
  5. asp.net2.0跨域问题
  6. Python | 重命名现有文件(os.rename()方法的示例)
  7. iOS 对象数组生成jsonarray
  8. 适合Java初学者的项目
  9. ddr3ddr4 lpddr4速率_LPDDR3内存就比DDR4差?是时候冷静一下了
  10. STM32串口驱动(拼音检索测试通过)(环形队列+内存动态分配+DMA)
  11. 网站代码sql注入攻击漏洞修复加固防护措施
  12. Guawa的Splitter的工具类
  13. python3的下载和安装
  14. LA 4986 hdu3756 Dome of Circus 三分答案
  15. python+大数据学习打卡day1
  16. 艺术聚焦:#DRIVE
  17. Tiny4412汇编流水灯代码,Tiny4412裸机LED操作【转】
  18. STM32实现任意角度移相全桥PWM
  19. 使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
  20. Google 百度 图标收藏

热门文章

  1. 3dsMax插件V-Ray渲染与合成学习课程 3ds Max: Rendering for Compositing in V-Ray Next
  2. Go 分布式学习利器(5)-- 数组和切片
  3. Socket/ServerSocket 选项
  4. buffer IO和direct IO
  5. cookie、session总结
  6. struts2中 ServletActionContext与ActionContext区别
  7. 开源:ASP.NET MVC+EF6+Bootstrap开发框架
  8. android layout analyze
  9. OC系列foundation Kit基础-NSDate
  10. Android提示框与通知的使用