【发布时间】:2012-03-27 11:29:41
【问题描述】:
我有一个包含 500 只股票名称的字符串数组。现在我的 mysql 数据库中有一个表,其中包含 1000 多只股票的符号及其名称。我想做的是从我的表中检索这 500 只股票的符号。我试过下面的代码
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql//localhost/mydatabase","user","pass");
PreparedStatement stmt = conn.prepareStatement("SELECT (NAME) FROM stocks1 WHERE FULLNAME =?");
for(int i1=0;i1<i;i1++)
{
stmt.setString(1, name[i1]);
stmt.addBatch();
}
ResultSet t=stmt.executeQuery();
while(t.next())
System.out.println(t.getString("NAME"));
但它不起作用。什么都没有打印。我认为我在 stmt.addBatch() 中犯了一个错误。另外,如果我希望 name[i1] 后跟通配符(%),我该怎么做。
【问题讨论】:
-
批处理用于 DML 状态,而不是用于查询。您需要为要检索的每个 ID 运行 SELECT 或使用
WHERE IN (...)(不能在准备好的语句中使用) -
@Riddhish.Chaudhari- 上述问题的答案中的链接似乎有一些错误。@ahorsewithnoname,- 所以我必须将 select 语句放入 for 循环并运行它。