android sqlite 非法字符处理速记

如果是针对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的表名或者字段名里面搞非法字符。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值