2015-02-04 4 views
0

다음은 데이터베이스에 삽입 할 수 있도록 createFood DA 용 코드입니다. 그러나 nullPointerException이 에 있습니다. pstmt.setString (2, food.getFoodName());데이터베이스에 데이터를 삽입하는 중 오류가 발생했습니다.

 public static int createFood(Food food) { 
     // declare local variables 
     int orderID ; 
     DBController db = new DBController(); 
     String dbQuery; 
     PreparedStatement pstmt; 

    // step 1 - establish connection to database 
    db.getConnection(); 

    // step 2 - declare the SQL statement 
    dbQuery = "INSERT INTO orderitems (orderId, foodName, foodPrice, quantity,) VALUES(?,?,?,?)"; 
    pstmt = (PreparedStatement) db.getPreparedStatement(dbQuery); 
    orderID = getNextOrderId(); 
    // step 3 - to insert record using executeUpdate method 
    try { 
     pstmt.setInt(1,orderID); 
     pstmt.setString(2, food.getFoodName()); 
     pstmt.setDouble(3 ,food.getFoodPrice()); 
     pstmt.setInt(4, food.getQuantity()); 


     if (pstmt.executeUpdate() == 1) 
      return orderID; 
     pstmt.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    // step 4 - close connection 
    db.terminate(); 


    return -1; 
} 

"주문"을 클릭하면 코드입니다.

 private void actionPerformedOrder() { 
    //retrieve user input 
    String numPax = (String) cbNoPax.getSelectedItem(); 
    String tableNo= (String)cb_tableno.getSelectedItem(); 
    java.util.Date utilDate = new java.util.Date(); 
    Date orderDate = new Date(utilDate.getTime()); 
    System.out.println("Date " + orderDate); 
     orders = new Orders(Integer.parseInt(tableNo),Integer.parseInt(numPax),  (java.sql.Date) orderDate, totalAmount); 
    int orderID = OrdersDA.createOrders(orders); 

    OrderItems od; 
    for (Food fd: foodList) { 
     od = new OrderItems(orderID, fd.getFoodName(), fd.getQuantity(), fd.getFoodPrice()); 
     FoodDA.createFood(food); 
    } 

여전히 오류를 알아낼 수 없습니다. 누가 잘못 됐는지 아는 사람이 있습니까? 많은 도움을 주실 수 있습니다.

+0

'food.getFoodName()'이 리턴하는 것은 NPE –

+1

'FoodDA.createFood (food)'가 아마도'fd' 변수를 전달해야하는 원인이되어야합니다. 'food'변수가 null입니다. –

답변

0

당신은 내가 당신의 코드에 따라 createFood(fd)을 시도 어디서나 선언 볼 수 없습니다 createFood() 방법 food 변수를 전달했습니다.

+0

Thanks! 당신 말이 맞아요! –

관련 문제