我試圖在我的數據庫中,在表員工添加一行。 但我得到一個異常:在MySQL中添加NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ConnectionBD.EmployeeBD.add(EmployeeBD.java:56)`
這是我的源代碼(EmployeeBD類):
public void add() throws SQLException, ClassNotFoundException {
56 Employee a = ep.ReadEmployee();
57 if (a!=null) {
58 Connection conn = null;
try {
Class.forName(BDConnect.DRIVER);
conn = DriverManager.getConnection(BDConnect.BD_URL, BDConnect.USUARI, BDConnect.PASSWORD);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
if (conn != null) {
String sql = "SELECT * FROM employee";
ResultSet rs = stmt.executeQuery(sql);
rs.moveToInsertRow();
rs.updateString("nif", a.getNif());
rs.updateString("name", a.getName());
rs.updateDouble("salary",a.getSalary());
System.out.println("Added Suscefully");
rs.insertRow();
rs.moveToCurrentRow();
} else {
System.out.println("Can't get DB");
}
} catch (SQLException ioe) {
System.out.println(ioe);
} catch(ClassNotFoundException ex) {
System.out.println(ex);
}
}
}
而且ReadEmployee()方法:
public Employee ReadEmployee() {
String nif = null;
String name = null;
Double salary = null;
int depId = 0;
nif = jTextField1.getText();
name = jTextField2.getText();
salary = Double.parseDouble(jTextField3.getText());
Employee emp = new Employee(nif, name, salary, 1);
if (name.equals("") || nif.equals("") || salary != null) {
return emp;
} else {
JOptionPane.showMessageDialog(this, "Fill all TextFields", "Article warning", JOptionPane.WARNING_MESSAGE);
return null;
}
}
爲什麼它拋出異常? 我不知道該怎麼改正!
請在源代碼中寫出行號,以便我們能夠找出引發異常的行。謝謝 – Rohit 2013-05-07 09:00:41
請更多的信息,以更好地瞭解... – Ajit 2013-05-07 09:07:26
你應該檢查'conn!= null' * *之前**你調用'createStatement' – 2013-05-07 09:09:10