我正在尝试将MySQL数据库中的数据读入数组,以便我可以在视图中输出数据。
到目前为止我的代码是:
Class.forName("com.mysql.jdbc.Driver");
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/database","localhost","root");
PreparedStatement stmt = con.prepareStatement("select * from stock");
ResultSet result = stmt.executeQuery("select * from stock");
ArrayList<int[]> stockNo = new ArrayList<int[]>();
ArrayList<String[]> stockName = new ArrayList<String[]>();
while(result.next()){
stockNo.add(result.getInt(1));
stockName.add(result.getString(2));
}
}
但是我在.add上收到一条错误消息 &#34;类型ArrayList中的方法add(int,int [])不适用于arguements(int)&#34;。 有谁知道我怎么解决这个问题?是因为我没有定义数组的大小吗?
答案 0 :(得分:0)
这是因为您定义了List来存储整数数组,而不是整数。
替换它:
ArrayList<int[]> stockNo = new ArrayList<int[]>();
由此:
ArrayList<Integer> stockNo = new ArrayList<Integer>();
答案 1 :(得分:0)
result.getInt(1)
和result.getString(2)
各自返回Integer
和String
。您不能添加到具有int数组类型的ArrayList。
试试这个:
ArrayList<int> stockNo = new ArrayList<int>();
ArrayList<String> stockName = new ArrayList<String>();
while(result.next()){
stockNo.add(result.getInt(1));
stockName.add(result.getString(2));
}
答案 2 :(得分:0)
您可能需要查看Java Persistence API,尽管最初设置它可能会更多,但它将为您提供许多优势。它将避免在返回集上做很多事情。