Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import org.jsoup.Jsoup;
- import org.jsoup.nodes.Document;
- import org.jsoup.select.Elements;
- public class XML {
- Database database = new Database();
- public void searchAuctions(String searchQuery) throws IOException {
- String serviceAPI = "www.url.com?par=" + searchQuery;
- Document xmlResponse = Jsoup.connect(serviceAPI).get();
- Elements items = xmlResponse.select("item");
- try {
- String fields[] = database.getFields("databaseName", "tableName");
- String values[] = new String[fields.length];
- values[0] = null;
- for (int i = 0; i < items.size(); i++) {
- Elements product = items.eq(i);
- for(int j = 1; j < fields.length; j++) {
- values[j] = product.select(fields[j]).text();
- }
- boolean isInsert = database.insert("databaseName", "tableName", fields, values);
- if(!isInsert) {
- System.out.println("Failed to add entry.");
- }
- }
- } catch (Exception ex) {
- ex.printStackTrace(System.out);
- System.exit(1);
- }
- }
- }
- import java.sql.*;
- import java.util.ArrayList;
- import java.util.List;
- public class Database {
- private static String dbUsername = "username";
- private static String dbPassword = "password";
- private static String databaseAPI = "jdbc:mysql://localhost:3306/databaseName";
- private static Connection connection;
- private static Statement command;
- /** Gets all table fields from specified database/table. */
- public String[] getFields(String database, String table) {
- List<String> fieldList = new ArrayList<String>();
- try {
- connection = DriverManager.getConnection(databaseAPI, dbUsername, dbPassword);
- command = connection.createStatement();
- ResultSet result = command.executeQuery("SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME='" + table + "'");
- while(result.next()) {
- fieldList.add(result.getString(1));
- }
- } catch (Exception ex) {
- ex.printStackTrace(System.out);
- }
- String[] tableFields = new String[fieldList.size()];
- for(int i = 0; i < fieldList.size(); ++i) {
- tableFields[i] = fieldList.get(i);
- }
- return tableFields;
- }
- /** Inserts data into a specified database/table. Used to create new entries. */
- public boolean insert(String database, String table, String[] fields, String[] values) {
- if(fields.length != values.length) {
- return false;
- }
- String separatedFields = "";
- String statementParameters = "";
- for(int i = 0; i < fields.length; ++i) {
- if(i != fields.length - 1) {
- separatedFields = separatedFields.concat(fields[i] + ",");
- statementParameters = statementParameters.concat("?,");
- } else {
- separatedFields = separatedFields.concat(fields[i]);
- statementParameters = statementParameters.concat("?");
- }
- }
- try {
- connection = DriverManager.getConnection(databaseAPI, dbUsername, dbPassword);
- PreparedStatement sqlStatement = connection.prepareStatement("Insert INTO " + database + "." + table + " (" + separatedFields + ") VALUES (" + statementParameters + ")");
- for(int i = 0; i < values.length; ++i) {
- sqlStatement.setString(i + 1, values[i]);
- }
- sqlStatement.execute();
- } catch (Exception ex) {
- System.out.println(ex);
- return false;
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement