我的应用程序有一个数据库,但有些条目中有换行符,所以当我接受用户条目以保持insert语句有效时,我不得不用“$$”替换“\ n”。我需要在将数据返回给用户时显示换行符。
简而言之,我需要接受包含换行符的输入,将其存储到db,然后使用换行符正确显示回用户。
有什么想法吗? 感谢
这是我要插入数据库的代码 -
//first replace \n (i used StringUtils b/c i found it to be slightly faster)
category = StringUtils.replace(category, "\n", "");
subCategory = StringUtils.replace(subCategory,"\n", "");
brand = StringUtils.replace(brand,"\n", "");
name = StringUtils.replace(name,"\n", "");
notes = StringUtils.replace(notes,"\n", "$$");
initialValues.put(KEY_CATEGORY, category);
initialValues.put(KEY_SUB_CATEGORY, subCategory);
initialValues.put(KEY_BRAND, brand);
initialValues.put(KEY_NAME, name);
initialValues.put(KEY_NOTES, notes);
db.insert(DATABASE_TABLE, null, initialValues);
答案 0 :(得分:0)
正如323go所说,如果使用参数化插入查询,则可以使用包含换行符的字符串。我自己没有这样做的直接经验,但我不怀疑他是对的。但是,听起来您已经在数据库中使用$$格式化了换行符的数据。
换行符的ASCII十六进制值为0A,如果在SQLite中选择x'0A',则应生成换行符。因此,当您选择时,可以尝试用x'0A'替换$$的实例。例如,您将替换此语句:
SELECT name FROM table
...与:
SELECT REPLACE(name, '$$', x'0A') AS name FROM table