在java中运行后,此代码未显示输出?

时间:2015-09-16 21:40:50

标签: java mysql

为什么这个代码在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();
    }
 }

3 个答案:

答案 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)

您可以尝试调试代码。

  1. 这里硬编码一个名字。

    String name = sc.next();
    

    类似

    String name = "An Existing name in DB";
    
    1. 你的捕获没有任何机制来打印异常,所以你永远不会知道发生了什么。修改catch:

      catch(Exception e) {
         e.printStackTrace();
      }
      
  2. 这样做,让我知道我们会从那里开始。

答案 2 :(得分:0)

你检查了你的代码:
你需要这些进口货物

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;

在您提供的代码中。你错过了"}"最后。检查一下。