2013-09-27 2 views
0

Я новичок в Java Database, может кто-нибудь помочь мне с этой проблемой. Я хочу отредактировать строку в моем файле доступа к MS, но я получаю «java.lang .NullPointerException»Ошибка .. СпасибоJava odbc с MS Access Null Pointer Exception

Вот мой код ...

public void editBook(String inputTitle, String[] newBookInfo) 
{ 
    boolean result = false; 
    try 
    { 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     con = DriverManager.getConnection("jdbc:odbc:database"); 
     st = con.createStatement(); 
     rs = st.executeQuery("select * from library"); 

     while(rs.next()) 
     { 
      if(boyerMoore(rs.getString("Title"), inputTitle)) 
      { 
       rs.updateString("ISBN", newBookInfo[0]); 
       rs.updateString("Title", newBookInfo[1]); 
       rs.updateString("Author", newBookInfo[2]); 
       rs.updateString("Publisher", newBookInfo[3]); 
       rs.updateString("Published Year", newBookInfo[4]); 
       rs.updateString("Available Copies", newBookInfo[5]); 
       rs.updateString("Total Copies", newBookInfo[6]); 
       rs.updateRow(); 
       rs.close(); 
       st.close(); 
       con.close(); 
       JOptionPane.showMessageDialog(null, "Edit Succes", "Succes", JOptionPane.PLAIN_MESSAGE); 
       result = true; 
      } 
     } 

     if(!result) 
      JOptionPane.showMessageDialog(null, "\"" + inputTitle + "\" not Found in the Library", "Error", JOptionPane.ERROR_MESSAGE); 
    } 
    catch(Exception ex) 
    { 
     JOptionPane.showMessageDialog(null, ex, "Error", JOptionPane.ERROR_MESSAGE); 
    } 
} 
+2

ГДЕ вы получаете NPE? – SJuan76

+0

plz отправляет трассировку стека исключений. Вы уверены, что con установлен, и он не является нулевым? – santu

+0

Пожалуйста, вставьте полную статистику стека NPE. Он также сообщает вам о линии, которая вызывает NPE. Пожалуйста, сообщите нам, что линия. – Seelenvirtuose

ответ

0

ТИП 1 программа драйвера для JDBC с доступом.

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

public class Type_One 
{ 
    public static void main(String[] args) 
    { 
     try 
       { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //Load Driver 
      Connection con = DriverManager.getConnection("jdbc:odbc:HOD_DATA"); //Create Connection with Data Source Name : HOD_DATA 
      Statement s = con.createStatement(); // Create Statement 
      String query = "select * from Data"; // Create Query 
      s.execute(query); // Execute Query 
      ResultSet rs = s.getResultSet(); //return the data from Statement into ResultSet 
      while(rs.next()) // Retrieve data from ResultSet 
      { 
       System.out.print("Serial number : "+rs.getString(1)); //1st column of Table from database 
       System.out.print(" , Name : "+rs.getString(2)); //2nd column of Table 
       System.out.print(" , City : "+rs.getString(3)); //3rd column of Table 
       System.out.println(" and Age : "+rs.getString(4)); //4th column of Table 
      } 
      s.close(); 
      con.close(); 
     } 
     catch (Exception e) 
       { 
      System.out.println("Exception : "+e); 
     } 
    } 
} 

видеть больше на http://www.java2all.com/1/4/20/107/Technology/JDBC/JDBC-example/JDBC-example-with-access

0

Ровно Пожалуйста, проверьте, если вы получаете «Исключение нулевого указателя» на кон, то он должен быть, что ваша база данных не accessible.Pls проверить. Или отправьте трассировку стека.

+0

Я уже разместил stacktrace –