java萌新,解決不了
package util;
import java.sql.*;
public class DbUtil {
private String dbUrl = "jdbc:sqlserver://localhost:1433;DatabaseName=dorm";
private String dbUser = "sa";
private String dbPassword = "FLY0..";
private String jdbcName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private Connection connection = null;
public Connection getConnection(){
try {
Class.forName(jdbcName);
connection = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
System.out.println("資料庫鏈接成功!");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("資料庫鏈接失敗!");
e.printStackTrace();
}
return connection;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
DbUtil dbUtil = new DbUtil();
dbUtil.getConnection();
}
}
這是錯誤資訊:
資料庫鏈接失敗!java.lang.NullPointerException
at javax.xml.bind.DatatypeConverter.parseHexBinary(DatatypeConverter.java:310)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4098)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at util.DbUtil.getConnection(DbUtil.java:18)
at util.DbUtil.main(DbUtil.java:31)
uj5u.com熱心網友回復:
既然你發了兩次,我也就回復兩次吧。系統報錯很明確了,NPE,新手最容易犯的錯誤。
看帖子最后一行和倒數第二行的提示。在util.DbUtil.getConnection這個方法,就是DbUtil.java類的18行,傳遞了空物件,導致DriverManager里面使用引數實體化資料庫連接的時候失敗了。
盲猜是這一行報錯了 connection = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
可以在這一行前面加日志輸出定位一下,哪個引數輸出=null就是哪個引數有問題
package util;
import java.sql.*;
public class DbUtil {
private String dbUrl = "jdbc:sqlserver://localhost:1433;DatabaseName=dorm";
private String dbUser = "sa";
private String dbPassword = "FLY0..";
private String jdbcName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private Connection connection = null;
public Connection getConnection(){
try {
Class.forName(jdbcName);
System.out.println("準備獲取連接");
System.out.println("引數dbUrl=" + dbUrl);
System.out.println("引數dbUser=" + dbUser);
System.out.println("引數dbPassword=" + dbPassword);
connection = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
System.out.println("資料庫鏈接成功!");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("資料庫鏈接失敗!");
e.printStackTrace();
}
return connection;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
DbUtil dbUtil = new DbUtil();
dbUtil.getConnection();
}
}
另外推薦下次除了貼代碼,還可以截圖,原始碼行數都放上來,看的更清楚。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/154649.html
標籤:Java相關
上一篇:連接資料庫java.lang.NullPointerException
下一篇:JAVA編譯器
