我有一個登錄應用程序需要連接到服務器來檢查用戶名和密碼。我正在使用netbeans,jbdc已安裝並正在使用服務選項卡(謝謝堆棧溢出!)。由jbdc工作,我的意思是我可以通過它執行SQL腳本。Netbeans MySQL連接 - 不與jbdc
我已經設置與MS服務器16和MySQL,所以我convied它是代碼:
連接方法:
package dbUtil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class dbConnection {
private static final String USERNAME = "root";
private static final String PASSWORD = "mess";
private static final String SQCONN = "jdbc:mysql://localhost:1434/MessyLogin?zeroDateTimeBehavior=convertToNull";
public static Connection getConnection()throws SQLException{
try {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection(SQCONN, USERNAME, PASSWORD);
}catch (ClassNotFoundException e) {
}
return null;
}
}
loginmodel:
package LogIn;
import dbUtil.dbConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class LogInModel {
Connection connection;
public LogInModel() {
try{
this.connection = dbConnection.getConnection();
}catch(SQLException e){
}
if(this.connection == null){
System.out.println("here");
// System.exit(1);
}
}
public boolean isDatabaseConnected(){
return this.connection != null;
}
public boolean isLogin(String username, String password) throws Exception{
PreparedStatement pr = null;
ResultSet rs = null;
String sql = "SELECT * FROM MessyLogin where username = ? and Password = ?";
try{
pr = this.connection.prepareStatement(sql);
pr.setString(1, username);
pr.setString(2, password);
rs = pr.executeQuery();
boolean bool1;
if(rs.next()){
return true;
}
return false;
}
catch(SQLException ex){
return false;
}
finally {
{
pr.close();
rs.close();
}
}
}
}
我相信問題是來自dbConnection文件的return null;
。 if(this.connection==Null)
回來,系統正在退出。
預先感謝您。
你不知道當你寫空的catch塊時會發生什麼。打印堆棧跟蹤。 – duffymo
也許你應該在使用方法「getConnection()」之前在「LogInModel」中實例化(使用新的)類「dbConnection」。 – ziMtyth
您可以使用調試器查看「dbConnection」是否實際與null不同,因此您可以調用它的方法。 – ziMtyth