Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.08 KB | None | 0 0
  1. public void saveEntry(Entry entry)
  2.     {
  3.         if (!tableExists(entry.getFormid()))
  4.         {
  5.             if (entry.getForm() == null)
  6.                 throw new RuntimeException("Could not save entry of '" + entry.getUUID() + "' of form '" + entry.getFormid() + "' because of unkown table information. (form == null)");
  7.             else
  8.                 createTable(entry.getForm());
  9.         }
  10.         else
  11.         {
  12.             addCollums(entry.getForm());
  13.         }
  14.  
  15.         try
  16.         {
  17.             connect();
  18.  
  19.             int valuesStart = 3 + 1; // + 1 for index starting at 1
  20.             int updateStart = valuesStart + entry.getAnswers().size() + 1; // + 1 for validated
  21.                                    
  22.             String columns = "(`uuid`, `name`, `validated`";
  23.             String values = "(?,?,?";
  24.             String update = "`validated` = ?";
  25.            
  26.             if(!entry.getValidator().isEmpty())
  27.                 update += ",`date` = CURRENT_TIMESTAMP";
  28.                
  29.             for(Answer answer : entry.getAnswers())
  30.             {
  31.                 columns += ",`" + answer.getId() + "`";
  32.                 values += ",?";
  33.                 update += ",`" + answer.getId() + "` = ?";
  34.             }
  35.                            
  36.             columns += ")";
  37.             values += ")";
  38.            
  39.             String query = "INSERT INTO `forms_"+ entry.getFormid() +"` " + columns + " VALUES " + values + " ON DUPLICATE KEY UPDATE " + update + ";";
  40.                                        
  41.             PreparedStatement statement = connection.prepareStatement(query);
  42.                    
  43.             statement.setString(1, entry.getUUID().toString());
  44.             statement.setString(2, entry.getName());
  45.             statement.setString(3, entry.getValidator());
  46.             statement.setString(valuesStart + entry.getAnswers().size(), entry.getValidator());
  47.            
  48.             for(int i = 0; i < entry.getAnswers().size(); i++)
  49.             {
  50.                 Answer answer = entry.getAnswers().get(i);
  51.                                
  52.                 if(answer.getValue() instanceof Boolean)
  53.                 {
  54.                     statement.setBoolean(i + valuesStart, (Boolean) answer.getValue());
  55.                     statement.setBoolean(i + updateStart, (Boolean) answer.getValue());
  56.                 }
  57.                 else
  58.                 {
  59.                     statement.setString(i + valuesStart, (String) answer.getValue());
  60.                     statement.setString(i + updateStart, (String) answer.getValue());
  61.                 }
  62.             }
  63.            
  64.             statement.executeUpdate();
  65.             statement.close();
  66.         }
  67.         catch (Exception e)
  68.         {
  69.             e.printStackTrace();
  70.         }
  71.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement