【发布时间】:2017-08-03 07:19:04
【问题描述】:
有一个问题,我如何使用 mysql 从不同的表中获取 2 个不同的变量?是否可以使用准备好的语句从 1 个查询中工作?我是使用 java 进行 mysql 数据库编程的新手,所以这是我的问题。
我想得到:
user_key from user table
project_key from project table
是的,我知道,表名应该是非单数形式。
我正在尝试:
String project_key = null;
String user_key = null;
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://mysql:" + Config.getPortDB() + "/" + Config.getDatabase() + "?"
+ "user=" + Config.getUsername() + "&password=" + Config.getPassword());
String query ="SELECT user_key,project_key FROM user, project WHERE user_key = ? AND project_key = ?";
PreparedStatement preparedStatement = con.prepareStatement(query);
for(int i = 0; i < auths.size() ; i++ ) {
preparedStatement.setString(i+1, auths.get(i));
}
ResultSet rs = preparedStatement.executeQuery();
while(rs.next()) {
project_key = rs.getString("project_key");
user_key = rs.getString("user_key");
}
System.out.println(project_key); // null
System.out.println(user_key); // null
我在这里做错了什么?
【问题讨论】:
-
您正在做的事情应该可以工作,尽管最好使用
JOIN- 您的代码出了什么问题? -
当我尝试从 ResultSet 获取值时出现“null”异常
-
那么您需要显示该代码
-
更新,添加完整代码。
-
在 sql 客户端中运行您的代码并查看它们的输出 - 可能不是您想要的