2012-03-25 5 views
-2

안녕하세요. 데이터베이스에 값을 삽입해야하는 아래 방법이 있습니다. 그러나 PreparedStatement 줄에 Null 포인터 예외가 나타납니다데이터베이스에 삽입 할 때 널 포인터 예외가 발생합니다.

public void insertReservation(String name, String phone, int size, String date, String time, String additionalRequirements, String memberID, String themeID) throws SQLException, ClassNotFoundException { 

     try { 
      String strQuery = "INSERT INTO reservation VALUES (?, ? ,?, TO_DATE(?, 'dd-MMM-yy'), ?, ?, ?, ?)"; 
      PreparedStatement stmt = conn.prepareStatement(strQuery);/ 
      stmt.setString(1, name); 
      stmt.setString(2, phone); 
      stmt.setInt(3, size); 
      stmt.setString(4, date); 
      stmt.setString(5, time); 
      stmt.setString(6, additionalRequirements); 
      stmt.setString(7, memberID); 
      stmt.setString(8, themeID); 
      results = stmt.executeQuery(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     }//end try 
    } 

이 올바르게 데이터베이스에 삽입합니까? 왜이 null 포인터 예외 오류가 발생하는지 잘 모르겠습니다.

+2

도움이 될 것입니다 희망 내가 만든도록 SqlConnection 별도의 클래스입니다. – usr

+0

왜 당신이 nullpointer 예외가 발생하는지 잘 모르겠지만 [이 질문에] 체크 아웃 (http://stackoverflow.com/questions/1023835/why-am-i-getting-a-null-pointer-exception-from) -이 자바 코드). – keyser

+0

인용 부호를 이스케이프 처리하십시오. \ ' –

답변

7

connnull이며, 그 값을 인쇄하십시오.

0

는 알고 있지만이

String strQuery = "insert into reservation(ColumnName1, ColumnName2 ,ColumnName3,) values(?,?을 시도) "하지 마십시오 ;?

과 끝에 만됩니다) (실행, 선택과 함께 작동 을이 stmt.execute();

executeQuery(); 문처럼 쿼리 만

둘째로 당신이 conn = S와 같이 지정하면 쿼리를 사용하는 클래스의 생성자 또는 메서드에서 conn 값을 설명했습니다 qlConnection.ConnecrDb(); 아래

public class SqlConnection { 

    Connection conn=null; 

    public static Connection ConnecrDb(){ 
     try 
     { 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     Connection conn= DriverManager.getConnection("jdbc:odbc:Test","",""); 
     return conn; 
     } 
     catch(Exception e) 
     { 
     JOptionPane.showMessageDialog(null, e); 
     return null; 
     } 
    } 
} 

당신이 우리에게 도움이 될 수 있습니다 예외 아무도 대해 아무것도 말하지 않으면 그것은 당신에게

관련 문제