基于sqlite特殊字符转义的实现方法

select
* fromtablewhere  number like '%/%%' escape '/'...
    sqlite3数据库在搜索的时候,一些特殊的字符需要进行转义, 具体的转义如下:
     /   ->    //
     '   ->    ''
     [   ->    /[
     ]   ->    /]
     %   ->    /%
     &   ->    /&
     _   ->    /_
     (   ->    /(
     )   ->    /)
需要注意的是,特殊字符并没有用反斜杠“\”表示转义符。


代码如下:

public static String sqliteEscape(String keyWord){
    keyWord = keyWord.replace("/", "//");
    keyWord = keyWord.replace("'", "''");
    keyWord = keyWord.replace("[", "/[");
    keyWord = keyWord.replace("]", "/]");
    keyWord = keyWord.replace("%", "/%");
    keyWord = keyWord.replace("&","/&");
    keyWord = keyWord.replace("_", "/_");
    keyWord = keyWord.replace("(", "/(");
    keyWord = keyWord.replace(")", "/)");
    return keyWord;
}

(0)

相关推荐

  • SQLite数据库安装及基本操作指南

    1. 介绍 SQLite 是一个开源的嵌入式关系数据库,实现自包容.零配置.支持事务的SQL数据库引擎. 其特点是高度便携.使用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保SQLite的二进制文件存在即可开始创建.连接和使用数据库.如果您正在寻找一个嵌入式数据库项目或解决方案,SQLite是绝对值得考虑. 2. 安装 SQLite on Windows 1)进入 SQL 下载页面:http://www.sqlite.or

  • Android开发之SQLite的使用方法

    前言 SQLite是一种轻量级的小型数据库,虽然比较小,但是功能相对比较完善,一些常见的数据库基本功能也具有,在现在的嵌入式系统中使用该数据库的比较多,因为它占用系统资源很少.Android系统中也不例外,也是采用SQLite,本节中就学习下在andorid中怎样使用该数据库来存放数据,并且对SQLite完成简单的新建,更新,查询,删除等操作. 实验说明: Android中使用SQLite数据库时,需要用adb来辅助调试,如果想在windows下的cmd命令行中使用adb,必须先配置环境变量,我

  • mssql和sqlite中关于if not exists 的写法

    在sql语名中,if not exists 即如果不存在,if exists 即如果存在. 下面学习下二者的用法. a,判断数据库不存在时 复制代码 代码如下: if not exists(select * from sys.databases where name = 'database_name') b,判断表不存在时 复制代码 代码如下: if not exists (select * from sysobjects where id = object_id('table_name') a

  • Android中的SQL查询语句LIKE绑定参数问题解决办法(sqlite数据库)

    由于考虑到数据库的安全性,不被轻易SQL注入,执行查询语句时,一般不使用直接拼接的语句,而是使用参数传递的方法.然后在使用参数传递的方法中时,发现当使用like方式查询数据时,很容易出现一个问题. 错误案例: 复制代码 代码如下: String myname = "abc";String sql = "select * from mytable where name like '?%'";Cursor cursor = db.rawQuery(sql, new St

  • android创建数据库(SQLite)保存图片示例

    复制代码 代码如下: //1.创建数据库public class DBService extends SQLiteOpenHelper { private final static int VERSION = 1;private final static String DATABASE_NAME = "uniteqlauncher.db"; public DBService(Context context) {    this(context, DATABASE_NAME, null,

  • 深入SQLite基本操作的总结详解

    sqlite提供的是一些C函数接口,你可以用这些函数操作数据库.通过使用这些接口,传递一些标准 sql 语句(以 char * 类型)给 sqlite 函数,sqlite 就会为你操作数据库.sqlite 跟MS的access一样是文件型数据库,就是说,一个数据库就是一个文件,此数据库里可以建立很多的表,可以建立索引.触发器等等,但是,它实际上得到的就是一个文件.备份这个文件就备份了整个数据库. sqlite 不需要任何数据库引擎,这意味着如果你需要 sqlite 来保存一些用户数据,甚至都不需

  • Android SQLite数据库增删改查操作的使用详解

    一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n). char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段

  • 基于sqlite特殊字符转义的实现方法

    select * fromtablewhere  number like '%/%%' escape '/'...    sqlite3数据库在搜索的时候,一些特殊的字符需要进行转义, 具体的转义如下:      /   ->    //     '   ->    ''     [   ->    /[     ]   ->    /]     %   ->    /%     &   ->    /&     _   ->    /_    

  • 基于网址URL中特殊字符转义编码

    目录 网址URL中特殊字符转义编码 URL特殊字符转义,URL中一些字符的特殊含义,基本编码规则如下: 如果需要在URL中用到,需要将这些特殊字符换成相应的十六进制的值 预备知识 为什么需要Url编码 哪些字符需要编码 US-ASCII字符集中没有对应的可打印字符 保留字符 不安全字符 如何对Url中的非法字符进行编码 Javascript中的escape,encodeURI和encodeURIComponent的区别 安全字符不同 兼容性不同 对Unicode字符的编码方式不同 适用场合不同

  • PHP实现json_decode不转义中文的方法

    本文实例讲述了PHP实现json_decode不转义中文的方法.分享给大家供大家参考,具体如下: 默认情况下PHP的 json_decode 方法会把特殊字符进行转义,还会把中文转为Unicode编码形式. 这使得数据库查看文本变得很麻烦.所以我们需要限制对于中文的转义. 对于PHP5.4+版本,json_decode函数第二个参数,可以用来限制转义范围. 要限制中文,使用JSON_UNESCAPED_UNICODE参数. json_encode($a, JSON_UNESCAPED_UNICO

  • PHP使用preg_split()分割特殊字符(元字符等)的方法分析

    本文实例讲述了PHP使用preg_split()分割特殊字符(元字符等)的方法.分享给大家供大家参考,具体如下: 这里所说的特殊字符就是正则中使用的特殊字符,如: | . + 等 其它的先不说,来个实例: $pattern="/[,-\\|\\.]/"; $subject="aaa,bbb,ccc-ddd-eee-fff|ggg|hhh.iii.jjj.kkk"; $spr=preg_split($pattern, $subject); print_r($spr);

  • Android基于Pull方式解析xml的方法详解

    本文实例讲述了Android基于Pull方式解析xml的方法.分享给大家供大家参考,具体如下: Pull解析和Sax解析很相似,都是轻量级的解析,在Android的内核中已经嵌入了Pull,所以我们不需要再添加第三方jar包来支持Pull. Pull解析和Sax解析不一样的地方有: (1)pull读取xml文件后触发相应的事件调用方法返回的是数字 (2)pull可以在程序中控制想解析到哪里就可以停止解析. 来看看实例: book.xml如下: <?xml version="1.0"

  • golang json.Marshal 特殊html字符被转义的解决方法

    go语言提供了json的编解码包,json字符串作为参数值传输时发现,json.Marshal生成json特殊字符<.>.&会被转义. type Test struct { Content string } func main() { t := new(Test) t.Content = "http://www.baidu.com?id=123&test=1" jsonByte, _ := json.Marshal(t) fmt.Println(string

  • mybatis/mybatis-plus模糊查询语句特殊字符转义拦截器的实现

    目录 1.使用mybatis提供的拦截器拦截所有的查询请求. 2.定义SQL语句转义模板,分别对Map和Object对象进行处理 mybatis/mybatis-plus模糊查询语句特殊字符转义拦截器 在开发中,我们通常会遇到这样的情况.用户在录入信息是录入了'%',而在查询时无法精确匹配'%'.究其原因,'%'是MySQL的关键字,如果我们想要精确匹配'%',那么需要对其进行转义. 1.使用mybatis提供的拦截器拦截所有的查询请求. 具体实现在代码中均有注释 import lombok.e

  • Android基于Sqlite实现注册和登录功能

    Android中基于Sqlite实现注册和登录功能,供大家参考,具体内容如下 前言 写这篇博客主要是为了巩固一下学的Sqlite知识以及梳理一下这个项目的逻辑 实现逻辑 项目的图片结构图如下 代码 user class public class User {     private String name;    //用户名     private String password;     //密码     public User(String name, String password) {

  • AngularJS基于ui-route实现深层路由的方法【路由嵌套】

    本文实例讲述了AngularJS基于ui-route实现深层路由的方法.分享给大家供大家参考,具体如下: 1.前面我们通过了简单的ng-route实现了简单层次的路由,对于深层次的路由,我们可以通过ui-route来实现. (1)ng-route的局限性:一个页面无法嵌套多个视图,也就是说一个页面只能有包含一个页面一个控制器的切换. (2)ui-route的改进:在具有富客户端的单页应用中,要在一个页面中呈现不同的视图,我们可以通过ui-route实现路由的嵌套. 2 . ui-route的使用

  • PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】

    本文实例讲述了PHP基于PDO调用sqlserver存储过程的方法.分享给大家供大家参考,具体如下: 由于业务这边存储过程一直在sqlserver上面,所以要用php去调用它,然而我们本地的是windows,而线上又是linux,一开始使用Yii框架的一些机制去调用发现在本地一直都是好的然而到线上就不行了,找了很多方案,最后找到了pdo这种方案,而本地使用的驱动是sqlsrv线上是dblib所以需要注意下链接pdo时的驱动形式,在取结果集的时候注意windows和linux好像有所不同,在我加上

随机推荐