android sqlite 非法字符处理速记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DucklikeJAVA/article/details/82351156

如果是针对sqlite3sql语句的话,一般是这样子:

create table aa(id integer); # ok

这句命令没有任何的问题,可以正常创建。

但是,如果你的表名中有非法字符,就不行了:

create table xx-yy-zz(id integer); # fail

改进:

create table 'xx-yy-zz'(id integer); # ok

对于命令行,就是对这种字段,加引号就可以了。但是对于Java代码:调用SQLiteDatabase.insert(table,nullColumnHack,values)遇到这个问题怎么办?

如果此时 tableNamexx-yy-zz怎么办?

我在项目中看到的解决方案是:

String table = "xx-yy-zz";
long insert = db.insert("[" + tableName + "]", null, contentValues);

这样的确有用。

然后,对于非法字段的解决方式如出一辙。

String table = "x-y-z";
String book = "python-code-book";
String sql = "CREATE TABLE [" + table + "] ([" + book + "] TEXT);";
db.execute(sql);

当然,应该尽量避免在sql的表名或者字段名里面搞非法字符。

如果是接手的项目,里面存在这种问题,可以采用这种解决方案。

猜你喜欢

转载自blog.csdn.net/DucklikeJAVA/article/details/82351156