【发布时间】:2015-08-20 23:42:55
【问题描述】:
我在 MySQL 中有用户表,我创建了一个存储过程,以便当从 swing 文本字段获取用户名和密码时将它们传递到存储过程并了解是否存在该用户登录,但我实际上无法在 phpMyAdmin 中获取结果集存储过程正常工作,但在 netbeans 中无法获取结果集,并且运行时永远不会在控制台中停止,一直在运行。
我认为我的代码在其他地方没有问题,因为它是如此简单的代码。
这是我在 MySQL 中的存储过程
SELECT * FROM `users` WHERE `users`.`E-Mail` = @p0 AND `users`.`Password` = @p1
它需要两个参数 varchar,我之前尝试过将它们作为文本
这是我的java代码的具体部分
public void loginPass(String email, String password){
try {
DriverManager.registerDriver((Driver) Class.forName("com.mysql.jdbc.Driver").newInstance());
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/askdocdb","root","");
CallableStatement mystatement = connection.prepareCall("{CALL sp_Login (?, ?)}");
mystatement.setString(1, email);
mystatement.setString(2, password);
// mystatement.setString("@p0", email);
// mystatement.setString("@p1", password);
boolean situation = mystatement.execute();
System.out.println(situation);
// resultset = mystatement.executeQuery();
resultset = mystatement.getResultSet();
String res = resultset.getString(2);
System.out.println(res);
// resultset = mystatement.executeQuery();
while(resultset.next()){
System.out.println("asdsad");
}
resultset.close();
} catch (Exception e) {
}
}
注释行的原因,我尝试了任何可能的语法组合
情况返回真
res 不返回
不能进入while语句
感谢您现在的支持和 cmets。
【问题讨论】:
-
您是否特别需要使用存储过程?
-
其实我不需要,但我不想在java端写所有的查询,我只想执行数据库中已经存在的东西。
标签: java mysql swing stored-procedures