Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.94 KB | None | 0 0
  1. import java.io.IOException;
  2. import org.jsoup.Jsoup;
  3. import org.jsoup.nodes.Document;
  4. import org.jsoup.select.Elements;
  5.  
  6. public class XML {
  7.  
  8. Database database = new Database();
  9.  
  10. public void searchAuctions(String searchQuery) throws IOException {
  11.  
  12. String serviceAPI = "www.url.com?par=" + searchQuery;
  13.  
  14. Document xmlResponse = Jsoup.connect(serviceAPI).get();
  15.  
  16. Elements items = xmlResponse.select("item");
  17.  
  18. try {
  19.  
  20. String fields[] = database.getFields("databaseName", "tableName");
  21. String values[] = new String[fields.length];
  22. values[0] = null;
  23.  
  24. for (int i = 0; i < items.size(); i++) {
  25. Elements product = items.eq(i);
  26. for(int j = 1; j < fields.length; j++) {
  27. values[j] = product.select(fields[j]).text();
  28. }
  29. boolean isInsert = database.insert("databaseName", "tableName", fields, values);
  30. if(!isInsert) {
  31. System.out.println("Failed to add entry.");
  32. }
  33. }
  34.  
  35. } catch (Exception ex) {
  36. ex.printStackTrace(System.out);
  37. System.exit(1);
  38. }
  39.  
  40. }
  41. }
  42.  
  43. import java.sql.*;
  44. import java.util.ArrayList;
  45. import java.util.List;
  46.  
  47. public class Database {
  48.  
  49. private static String dbUsername = "username";
  50. private static String dbPassword = "password";
  51.  
  52. private static String databaseAPI = "jdbc:mysql://localhost:3306/databaseName";
  53. private static Connection connection;
  54. private static Statement command;
  55.  
  56. /** Gets all table fields from specified database/table. */
  57. public String[] getFields(String database, String table) {
  58.  
  59. List<String> fieldList = new ArrayList<String>();
  60.  
  61. try {
  62. connection = DriverManager.getConnection(databaseAPI, dbUsername, dbPassword);
  63. command = connection.createStatement();
  64. ResultSet result = command.executeQuery("SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME='" + table + "'");
  65.  
  66. while(result.next()) {
  67. fieldList.add(result.getString(1));
  68. }
  69. } catch (Exception ex) {
  70. ex.printStackTrace(System.out);
  71. }
  72.  
  73. String[] tableFields = new String[fieldList.size()];
  74. for(int i = 0; i < fieldList.size(); ++i) {
  75. tableFields[i] = fieldList.get(i);
  76. }
  77.  
  78. return tableFields;
  79.  
  80. }
  81.  
  82. /** Inserts data into a specified database/table. Used to create new entries. */
  83. public boolean insert(String database, String table, String[] fields, String[] values) {
  84.  
  85. if(fields.length != values.length) {
  86. return false;
  87. }
  88.  
  89. String separatedFields = "";
  90. String statementParameters = "";
  91.  
  92. for(int i = 0; i < fields.length; ++i) {
  93. if(i != fields.length - 1) {
  94. separatedFields = separatedFields.concat(fields[i] + ",");
  95. statementParameters = statementParameters.concat("?,");
  96. } else {
  97. separatedFields = separatedFields.concat(fields[i]);
  98. statementParameters = statementParameters.concat("?");
  99. }
  100. }
  101.  
  102. try {
  103.  
  104. connection = DriverManager.getConnection(databaseAPI, dbUsername, dbPassword);
  105. PreparedStatement sqlStatement = connection.prepareStatement("Insert INTO " + database + "." + table + " (" + separatedFields + ") VALUES (" + statementParameters + ")");
  106.  
  107.  
  108. for(int i = 0; i < values.length; ++i) {
  109. sqlStatement.setString(i + 1, values[i]);
  110. }
  111.  
  112. sqlStatement.execute();
  113.  
  114. } catch (Exception ex) {
  115. System.out.println(ex);
  116. return false;
  117. }
  118. return true;
  119. }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement