[英]This code is not showing output after running it in java?
為什么在Netbeans中運行此代碼后,它不顯示輸出? 連接到mysql中的數據庫后,應該詢問“輸入要搜索的用戶名”。 我已經使用MySql在Netbeans 8.0.2中創建了數據庫和表。 所有驅動程序均已正確安裝,因為我可以在服務面板中看到它們。我在Webservice上工作時正在使用Netbeans 8.0.2。 我不確定這是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();
}
}
如果沒有得到任何結果,是因為代碼執行會引發異常。 當執行到達異常部分時,沒有更多的代碼可以執行,因此該程序已完成並且在控制台上不顯示任何內容。
我猜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服務正在運行,並且必須具有所需的所有導入。
您可以嘗試幾種方法來調試代碼。
這里硬編碼一個名字。
String name = sc.next();
就像是
String name = "An Existing name in DB";
您的捕獲沒有任何機制可以打印異常,因此您永遠不會知道發生了什么。 修改捕獲:
catch(Exception e) { e.printStackTrace(); }
做到這一點,讓我知道我們會從那里過去。
您是否檢查過代碼:
您需要這些進口
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
在您提供的代碼中。 您最后錯過了“}”。 核實。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.