我有一个edittext,允许用户输入最多10个数字。
我希望能够将此数字作为字符串列表保存到SQLite数据库中。
SQL允许这样做吗?如果是这样的话?
如 String [] list = {1020300303,1020303001,0102003020};
答案 0 :(得分:4)
你可以做到,但你将违反规范化规则。
如果将该数组作为单个字符串(以逗号分隔?)保留,则必须对其进行解析以查看单个值。不是个好主意。
规范化架构将使用两个表之间的一对多关系。一个是父,另一个是每个值有一行的子和主/外键关系。您将使用JOIN返回值。
如果您非常想要这样做,那么您必须将数组中的所有字符串连接成一个,在它们之间有一些分隔符,您确定它们绝不会出现在任何字符串中结合。获得单个分隔的String后,将其INSERT到SQLite数据库的表中的String类型列中。
既然你坚持要看一些代码,这就是它在Java中的样子:
String [] list = { "1020300303", "1020303001", "0102003020" };
StringBuilder concatenatedList = new StringBuilder();
for (String s : list) {
concatenatedList.append(s).append('~'); // Any delimiter will do.
}
PreparedStatement ps = connection.prepareStatement("INSERT INTO MySQLiteTable(stringColumnName) VALUES(?)";
ps.setString(1, concatenatedList.toString());
int numRowsAffected = ps.executeUpdate();
我不会这样写 - 没有清理,没有错误处理,没有良好的封装。但它显示了你想去的地方。