Java中整数数组的结果集
如何将结果集转换为整数数组? 我真的需要一个整数数组。没有名单之类的Java中整数数组的结果集,java,sql,arrays,integer,resultset,Java,Sql,Arrays,Integer,Resultset,如何将结果集转换为整数数组? 我真的需要一个整数数组。没有名单之类的 ResultSet rs = sqlite.query("SELECT ores FROM testtable WHERE nicknames='"+"testname"+"';"); “ores”包含8个由空格分隔的整数:102030050607080 编辑: “ores”存储为VARCHARResultSet是您的r查询的结果,如果要将其转换为ArrayList或简单整数数组,可以迭代ResultSet并将所有非空对象添
ResultSet rs = sqlite.query("SELECT ores FROM testtable WHERE nicknames='"+"testname"+"';");
“ores”包含8个由空格分隔的整数:102030050607080
编辑:
“ores”存储为VARCHARResultSet是您的r查询的结果,如果要将其转换为ArrayList或简单整数数组,可以迭代ResultSet并将所有非空对象添加到ArrayList或数组中。这是一个简单的解决方案…ResultSet是您的R查询的结果,如果您想将其转换为ArrayList或简单整数数组,您可以迭代ResultSet并将所有非空对象添加到ArrayList或数组中。这是一个简单的解决方案…可能类似于:
rs.last();
rowcnt = myResultSet.getRow(); // get row no.
rs.beforeFirst();
int i = 0;
Integer[] options = new Integer[rowcnt];
while (rs.next()) {
options[i] = Integer.parseInt(rs.getString(i));
i++;
}
可能是这样的:
rs.last();
rowcnt = myResultSet.getRow(); // get row no.
rs.beforeFirst();
int i = 0;
Integer[] options = new Integer[rowcnt];
while (rs.next()) {
options[i] = Integer.parseInt(rs.getString(i));
i++;
}
Vector=newvector();
rs.beforeFirst();
while(rs.next()){ores.add(rs.getInt(1));}
整数[]vals=ores.toArray(新整数[0]);
向量ores=new Vector();
rs.beforeFirst();
while(rs.next()){ores.add(rs.getInt(1));}
整数[]vals=ores.toArray(新整数[0]);
错误代码。我推荐一份准备好的声明:
PreparedStatement ps = connection.prepareStatement("SELECT ores FROM testtable WHERE nicknames= ?");
ps.setString(1, nickname);
ResultSet rs = ps.executeQuery();
List<Integer> values = new ArrayList<Integer>();
while (rs.next()) {
String ores = rs.getString("ores");
String [] tokens = ores.split("\\s+");
for (int i = 0; i < tokens.length; ++i) {
values.add(Integer.valueOf(tokens[i]));
}
}
PreparedStatement ps=connection.prepareStatement(“从testtable中选择ores,其中昵称=?”;
ps.setString(1,昵称);
结果集rs=ps.executeQuery();
列表值=新的ArrayList();
while(rs.next()){
字符串ores=rs.getString(“ores”);
字符串[]标记=ores.split(\\s+);
for(int i=0;i
错误代码。我推荐一份准备好的声明:
PreparedStatement ps = connection.prepareStatement("SELECT ores FROM testtable WHERE nicknames= ?");
ps.setString(1, nickname);
ResultSet rs = ps.executeQuery();
List<Integer> values = new ArrayList<Integer>();
while (rs.next()) {
String ores = rs.getString("ores");
String [] tokens = ores.split("\\s+");
for (int i = 0; i < tokens.length; ++i) {
values.add(Integer.valueOf(tokens[i]));
}
}
PreparedStatement ps=connection.prepareStatement(“从testtable中选择ores,其中昵称=?”;
ps.setString(1,昵称);
结果集rs=ps.executeQuery();
列表值=新的ArrayList();
while(rs.next()){
字符串ores=rs.getString(“ores”);
字符串[]标记=ores.split(\\s+);
for(int i=0;i
@downvoter:Downvoting不说为什么是无用的!最后,您可以从该ArrayList生成一个数组。@Ingo:有关如何从ArrayList生成数组的信息,请参见此处:我认为这是被否决的,因为您只有一行。您需要将该行中的字符串拆分,并将每个字符串转换为整数,然后添加到列表/数组中。这仍然不是cear。他只是说它是储存在瓦查尔的。。。没关系。我现在切换到8列,而不是将8个整数存储在一个varchar中。@downvoter:Downvoting没有说明为什么是无用的!最后,您可以从该ArrayList生成一个数组。@Ingo:有关如何从ArrayList生成数组的信息,请参见此处:我认为这是被否决的,因为您只有一行。您需要将该行中的字符串拆分,并将每个字符串转换为整数,然后添加到列表/数组中。这仍然不是cear。他只是说它是储存在瓦查尔的。。。没关系。我现在切换到8列,而不是将8个整数存储在一个varchar中。使用列数初始化arraysize,然后迭代所有行将保证IndexOutOfBoundsException
s。投影中只有一列。因此getColumnCount()
将始终返回1。更正-感谢您的评论。(我理解反对票——如果现在还可以,也许至少不应该有反对票)最好再看两次。。。rs.last()后跟rs.next()…:)@费尔多,谢谢!是的,总比后悔强一倍。。和我现在一样:)使用列的数量初始化arraysize,然后遍历所有行将保证IndexOutOfBoundsException
s。投影中只有一列。因此getColumnCount()
将始终返回1。更正-感谢您的评论。(我理解反对票——如果现在还可以,也许至少不应该有反对票)最好再看两次。。。rs.last()后跟rs.next()…:)@费尔多,谢谢!是的,总比后悔强一倍。。就像我现在说的:)ores
是一个整数列,您需要8行,或者ores
是一个字符串,其中有8个值,用空格分隔?忘了提一下,对不起。“ores”存储为VARCHAR。ores
是一个整数列,您需要8行,或者ores
是一个字符串,其中有8个值,用空格分隔?忘了提及这一点,抱歉。“ores”存储为VARCHAR。我认为这不起作用。他只有一排。您需要从第一行拆分字符串(使用空格分隔符),并将每个字符串转换为整数并添加到列表/数组中。skynorth是正确的。那不行,因为只有一排。行存储为字符串(VARCHAR),整数之间用空格分隔。对我来说,这听起来像是一个糟糕的规范化设计。甚至不是第一范式。无论如何,修复了代码。我认为这不起作用。他只有一排。您需要从第一行拆分字符串(使用空格分隔符),并将每个字符串转换为整数并添加到列表/数组中。skynorth是正确的。那不行,因为只有一排。行存储为字符串(VARCHAR),整数之间用空格分隔。对我来说,这听起来像是一个糟糕的规范化设计。甚至不是第一范式。不管怎样,修正了密码。