2011-04-20 21 views
0

我正在嘗試獲取max(proj_id)+1的值並在vo中設置值,然後我將數據插入到db中。我在下面的代碼嘗試這一點,但我得到空指針異常....當語句被打如何在java中設置proj_id的值爲max(proj_id)+ 1

public final class CreateProjDAO 
{ 
private static InitialContext context; 
String CLASS_NAME="DBConnectionFactory"; 
public void submitProjectDetails(CreateProjVO createprojVO) 
{ 
    String methodname="createConnection"; 
    Connection conn = null; 
    PreparedStatement psmt; 
    ResultSet rs=null; 
    Statement st=null; 
    int proj_id; 
    try { 
     conn = DBConnection.getJNDIConnection(); 

     rs=st.executeQuery("select MAX(PROJ_ID) from CR_PROJECT_DETAILS"); 

     if(!rs.next()) 
     { 
      proj_id=rs.getInt(1)+1; 
      System.out.println("Max:"+proj_id); 
     } 
     else 
     { 
      proj_id=1; 
      System.out.println("Max:"+proj_id); 
     } 

     createprojVO.setId(rs.getString(proj_id)); 

     System.out.println("in DAO"); 

     psmt= conn.prepareStatement("insert into CR_PROJECT_DETAILS(PROJ_ID,PROJ_NAME,PROJ_COST,PROJ_MANAGER) values(?,?,?,?)"); 
      psmt.setString(1, createprojVO.getId()); 
      psmt.setString(2,createprojVO.getName()); 
      psmt.setString(3,createprojVO.getCost()); 
      psmt.setString(4,createprojVO.getManager()); 
      psmt.executeQuery(); 


     System.out.println("conn==="+conn); 
     conn.close(); 
     System.out.println("Disconnected from database"); 

    } catch (Exception e) { 
     e.printStackTrace(System.err); 
     System.out.println("data already exist"); 
     System.out.println("error:"+e); 

    } 

} 
} 
+0

你得到NPE的確切線是什麼? – AbdullahC 2011-04-20 09:19:01

+0

和異常來自哪一行? – 2011-04-20 09:20:05

+0

在控制檯我剛剛開始這個java.lang.NullPointerException – Akshatha 2011-04-20 09:20:10

回答

1
rs=st.executeQuery("select MAX(PROJ_ID) from CR_PROJECT_DETAILS"); 

ST尚未初始化,因此NPE發生。

相關問題