我有什么似乎是一个错误。我可以向数据库中添加一个条目,该条目在文本中有一个单引号。
但是,当我使用 QueryBuilder 搜索任何文本 LIKE xyz 时,如果 xyz 中有一个单引号,我得到 MySQL 抱怨 SQL 格式错误。
除了自己解析所有字符串之外,Ormlite 中是否有一些方法可以调用来“清理”我的字符串?
示例代码如下:
public boolean isDuplicate () {
QueryBuilder<Company, Long> qb = getDao().queryBuilder() ;
Where<Company, Long> where = qb.where() ;
try {
if (Strings.isValid(name))
where.like("name", name) ;
if (Strings.isValid(regNo)) {
if (Strings.isValid(name))
where.or() ;
where.eq("regNo", regNo) ;
List<Company> res = where.query() ;
if (res != null && res.size() > 0)
return true ;
else
return false ;
}
} catch (SQLException e) {
GlobalConfig.log(e, true);
}
return false ;
}
如果公司名称中包含单引号,则会产生 SQL 错误:
为 Well Don't Delete Me 2 Please Pte Ltd. 创建默认条目 [12-07-2013 13:45:42] 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在“t Delete Me 2 Please Pte Ltd.”附近使用的正确语法。OR
regNo
= 'delete' )' 在第 1 行
欢迎任何建议。