2016-08-23 77 views
0
try { 
    int c=1; 
    pstmt = conn.prepareStatement(NHMQueryConstant.INSERT_INTO_USER.toString()); 

     pstmt.setInt(c++, userID); 
     pstmt.setInt(2, userTypeID); 
     pstmt.setString(c++,userName); 
     pstmt.setString(c++,NameInHindi); 
     pstmt.setString(c++,loginID); 
     pstmt.setString(c++,password); 

     int result = Integer.parseInt(mobile); 
     System.out.println(result); 
     pstmt.setInt(c++,result); 
     pstmt.setString(c++,email); 
     System.out.println(email); 
     /* 
     java.util.Date date = new SimpleDateFormat("yyyy-MM-dd").parse(dob); 
     java.sql.Date sqlDate = new java.sql.Date(date.getTime()); 
     pstmt.setDate(c++, sqlDate); 
     System.out.println(sqlDate); 
     */ 
     //pstmt.setDate(++c,new Date(new java.util.Date().getTime())); 
     pstmt.executeUpdate(); 
} 



public static final String INSERT_INTO_USER = new StringBuilder("") 
    .append("INSERT INTO m_user_master (M_User_Id,User_Type_ID,M_User_Name,M__User_Name_Hindi,Login_ID,Password,Mobile,Email)") 
     .append("VALUES(USER_ID_SEQ.NEXTVAL,'2',?,?,?,?,?,?)").toString(); 

我得到錯誤User_ID_seq.nextval未知column.how我可以插入獲取參數索引超出範圍。我得到錯誤User_ID_seq.nextval未知列

+0

使用JPA。你這樣做的方式是開放的SQL注入附件 –

+0

我使用mysql和java。 – Nidhi

+0

可怕的Wombat是正確的,順便說一句,你使用MySQL的錯誤語法,如果你的表有AUTOINCREMENT字段的user_id那麼你可以做它作爲公共靜態最終字符串INSERT_INTO_USER =新的StringBuilder(「」).append(「INSERT INTO m_user_master(User_Type_ID,M_User_Name,M__User_Name_Hindi,Login_ID,Password,Mobile,Email)「) .append(」VALUES('2',?,?,?,?,?,?)「)。toString(); –

回答

0

如果你已經自動生成的ID(例如AUTOINCREMENT在MySQL語法),不想去計較ID,你可以喜歡這個

public static final String INSERT_INTO_USER = "INSERT INTO " + 
      "m_user_master (M_User_Name,M__User_Name_Hindi,Login_ID,Password,Mobile,Email)" + 
      " VALUES('2',?,?,?,?,?,?)"; 

而且你必須刪除

pstmt.setInt(c++, userID); 
pstmt.setInt(2, userTypeID); 

如果您想要在Java中處理ID生成,那麼你可以做到這一點

public static final String INSERT_INTO_USER = "INSERT INTO " + 
      "m_user_master (M_User_Id,M_User_Name,M__User_Name_Hindi,Login_ID,Password,Mobile,Email)" + 
      " VALUES(?,'2',?,?,?,?,?,?)"; 

並刪除只有

pstmt.setInt(2, userTypeID);