为什么这个代码在Netbeans中运行后没有显示输出?在连接到mysql中的数据库后,应该询问“输入用户名以进行搜索”。我使用MySql在Netbeans 8.0.2中创建了数据库和表。所有驱动程序都安装正确,因为我可以在服务面板中看到它们。我正在使用Netbeans 8.0.2,因为我在webservice上工作。我不确定它是JDBC问题还是别的,因为我可以完全访问Netbeans 8.0.2中的所有数据库和表。请帮忙。
public class Passwordchecker{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/checksql", "username", "password");
Statement stmt = con.createStatement();
char answer;
do{
System.out.print("Enter username to search for: ");
String name = sc.next();
String SQL = "SELECT * FROM people WHERE name='" + name + "'";
ResultSet rs = stmt.executeQuery(SQL);
if(rs.next()) {
System.out.println("Success!");
} else {
System.out.println("Failure!");
}
System.out.print("Do you want to search for another name? (Y/N): ");
answer = sc.next().charAt(0);
} while(answer == 'Y' || answer == 'y');
} catch(Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
如果您没有得到任何结果,那是因为代码执行会引发异常。当执行到达异常部分时,没有更多的代码要执行,因此程序已经完成,并且它不会在控制台上显示任何内容。
我想statement stmt = con.createStatement();
部分抛出异常尝试执行此代码:
System.out.print("Posible Failure 1");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/checksql", "username", "password");
System.out.print("Posible Failure 2");
statement stmt = con.createStatement();
System.out.print("Posible Failure 3");
并在例外部分添加此行:
catch(Exception e) {
e.printStackTrace();
}
这将告诉你抛出异常的内容和位置。
确保MYSQL服务正在运行,您必须拥有所需的所有导入。
答案 1 :(得分:0)
您可以尝试调试代码。
这里硬编码一个名字。
String name = sc.next();
类似
String name = "An Existing name in DB";
你的捕获没有任何机制来打印异常,所以你永远不会知道发生了什么。修改catch:
catch(Exception e) {
e.printStackTrace();
}
这样做,让我知道我们会从那里开始。
答案 2 :(得分:0)
你检查了你的代码:
你需要这些进口货物
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
在您提供的代码中。你错过了"}"最后。检查一下。