2017-08-29 54 views
0

我是新手。我有兩張桌子。 registrationtablelogintable,其中registerationidregistrationtable中的主鍵和logintable中的外鍵,其中registerationid自動增量registrationtable中。我可以在registrationtable中插入,但不能在logintable中插入。我正在使用PreparedStatementBean類。請任何人都可以幫助我。 預先感謝您的幫助。無法在jdbc預準備語句中的外鍵表中插入數據

try {    
     PreparedStatement preparedstatement=connection.prepareStatement("INSERT INTO registrationtable(firstname,lastname,dob,address,city,state,mob) VALUES (?,?,?,?,?,?,?)",PreparedStatement.RETURN_GENERATED_KEYS); 
     preparedstatement.setString(1,bean.getFirstName()); 
     preparedstatement.setString(2,bean.getLastName()); 
     preparedstatement.setString(3,bean.getDOB()); 
     preparedstatement.setString(4,bean.getAddress()); 
     preparedstatement.setString(5,bean.getCity()); 
     preparedstatement.setString(6,bean.getState()); 
     preparedstatement.setString(7,bean.getMobile()); 

     System.out.println("Dao Rgisteration : "+bean.getFirstName()); 
     preparedstatement.executeUpdate(); 

     ResultSet resultset=preparedstatement.getGeneratedKeys(); 
     resultset.next(); 
     int autoGeneratedKeyRegisteration = resultset.getInt(1); 

     preparedstatement.close(); 
    // resultset=preparedstatement.executeQuery("SELECT LAST_INSERT_ID() AS last_id FROM registerationtable"); 



     String sql="INSERT INTO logintable(registerationid,username,password) VALUES (LAST_INSERT_ID(),'[email protected]','xyzabc123')"; 
     PreparedStatement preparedstatement1=connection.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS); 
     preparedstatement1.setInt(1,bean.getRegistrationId()); 
     preparedstatement1.setString(2, bean.getUsername()); 
     preparedstatement1.setString(3, bean.getPassword()); 
     System.out.println("Dao Login : "+bean.getUsername()); 
     preparedstatement1.executeUpdate(); 

     ResultSet resultset1=preparedstatement1.getGeneratedKeys(); 
     if(resultset1.next()){ 
     int autoGeneratedkeyLogin=resultset1.getInt(1); 
     } 
     resultset1=preparedstatement1.executeQuery("SELECT registerationid FROM logintable WHERE registerationid=LAST_INSERT_ID()"); 
     System.out.println(resultset); 
     preparedstatement1.close(); 
    } catch(Exception e){e.getMessage();}finally{ 
     try{ 
      connection.close(); 
     }catch(Exception ex){ex.getMessage();} 
    } 

} 

回答