2016-08-23 76 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);