Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SQLite数据库中插入一个整数表-int[],_Java_Arrays_Sqlite_Insert - Fatal编程技术网

Java 在SQLite数据库中插入一个整数表-int[],

Java 在SQLite数据库中插入一个整数表-int[],,java,arrays,sqlite,insert,Java,Arrays,Sqlite,Insert,是否可以在SQLite表中插入一个整数表,如int[]numbers 如何创建放置此表的列 这行代码: values.put(MySqlHelper.COLUMN_CHILDS, numbers); 返回一个错误,如: Change type of `numbers` to `String` SQLite中没有数组数据类型。您有两个选择: 创建两个不同的表,一个是“主”表,一个是“数字”表,其中数字通过一个表引用“主”表上的记录(行) (简单但不理想):正如@CloudyMarble所建议的

是否可以在SQLite表中插入一个整数表,如
int[]numbers

如何创建放置此表的列

这行代码:

values.put(MySqlHelper.COLUMN_CHILDS, numbers);
返回一个错误,如:

Change type of `numbers` to `String`

SQLite中没有数组数据类型。您有两个选择:

创建两个不同的表,一个是“主”表,一个是“数字”表,其中数字通过一个表引用“主”表上的记录(行)

(简单但不理想):正如@CloudyMarble所建议的,使用
Arrays.toString(numbers)
(或者
StringBuilder
,如果出于某种原因不适合您的需要),将数组中的所有数字放入逗号分隔的字符串中,并将其存储在数据库中。然后可以将该值从数据库拉回到Java数组中,如下所示:

 String[] s = stringFromDB.split(",");
 int[] numbers = new int[s.length];
 for (int curr = 0; curr < s.length; curr++)
     numbers[curr] = Integer.parseInt(s[curr]);
String[]s=stringFromDB.split(“,”);
int[]数字=新的int[s.length];
对于(int curr=0;curr
将数字数组作为字符串插入:

Arrays.toString(numbers);

在读取时,使用split方法拆分数组,并将元素转换为整数,如@drewmore的答案所示。

如果SQLLite中有数组类型,并且驱动程序正在将该类型提供给u,则u可以是。否则,当您以StringSee answer的形式写入db时,您应该自己编写/读取它。SQLite不支持数组。您必须使用一种变通方法,如将其存储为文本,或使用外键和另一个表。我不知道第二种解决方案,但我正在考虑创建类似的方法,但您为什么认为它不理想?它只是没有真正的可扩展性。如果你的项目相当小,它会工作得很好。但是所有这些字符串操作都很昂贵,并且会留下很大的错误空间,因此如果必须执行大量操作,那么使用第一种解决方案会更有效。但是Arrays.toString()会将[]放在字符串周围(作为它们之间的逗号)。您的拆分代码段不会删除它们。我不认为ParseInt可以处理[]?