summaryrefslogtreecommitdiff
path: root/src/main/DataFiller.java
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2014-05-09 14:31:37 +0200
committerPeter Wu <peter@lekensteyn.nl>2014-05-09 14:31:37 +0200
commitb1a7bb58774ecee3c2ef79f684bc255cb8e6ef7c (patch)
treecc6f8b37d8edcdb92c8ce5d769d16ab8ed9acfab /src/main/DataFiller.java
parentecb00abefb73ae8aec58cd549cfcbbc1af209ed0 (diff)
downloadDatafiller-b1a7bb58774ecee3c2ef79f684bc255cb8e6ef7c.tar.gz
Use upsert queries, convert to named parameter statements
Get rid of ispostedby, move it to tweet table ("userid")
Diffstat (limited to 'src/main/DataFiller.java')
-rw-r--r--src/main/DataFiller.java46
1 files changed, 20 insertions, 26 deletions
diff --git a/src/main/DataFiller.java b/src/main/DataFiller.java
index 4f06006..10ed774 100644
--- a/src/main/DataFiller.java
+++ b/src/main/DataFiller.java
@@ -1,9 +1,9 @@
package main;
import data.Tweet;
+import database.NamedPreparedStatement;
import database.QueryUtils;
import java.sql.Connection;
-import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@@ -25,36 +25,32 @@ public class DataFiller {
/**
* A single insert tweet that can be used.
*/
- private final PreparedStatement m_insertTweet;
+ private final NamedPreparedStatement m_insertTweet;
/**
* A single insert profiles that can be used.
*/
- private final PreparedStatement m_insertProfile;
- /**
- * A single insert ispostedby that can be used.
- */
- private final PreparedStatement m_insertPosted;
+ private final NamedPreparedStatement m_insertProfile;
/**
* A single insert brand that can be used.
*/
- private final PreparedStatement m_insertBrand;
+ private final NamedPreparedStatement m_insertBrand;
/**
* A single insert hashtag that can be used.
*/
- private final PreparedStatement m_insertHash;
+ private final NamedPreparedStatement m_insertHash;
/**
* A single insert url that can be used.
*/
- private final PreparedStatement m_insertUrl;
+ private final NamedPreparedStatement m_insertUrl;
/**
* A single insert url that can be used.
*/
- private final PreparedStatement m_insertMentions;
+ private final NamedPreparedStatement m_insertMentions;
/**
* Create the datafiller object.
@@ -64,13 +60,12 @@ public class DataFiller {
public DataFiller(Connection connection) {
try {
m_connection = connection;
- m_insertTweet = m_connection.prepareStatement(QueryUtils.insertTweet);
- m_insertProfile = m_connection.prepareStatement(QueryUtils.insertProfile);
- m_insertPosted = m_connection.prepareStatement(QueryUtils.insertPosted);
- m_insertBrand = m_connection.prepareStatement(QueryUtils.insertBrand);
- m_insertHash = m_connection.prepareStatement(QueryUtils.insertHash);
- m_insertUrl = m_connection.prepareStatement(QueryUtils.insertUrl);
- m_insertMentions = m_connection.prepareStatement(QueryUtils.insertMentions);
+ m_insertTweet = new NamedPreparedStatement(m_connection, QueryUtils.insertTweet);
+ m_insertProfile = new NamedPreparedStatement(m_connection, QueryUtils.insertProfile);
+ m_insertBrand = new NamedPreparedStatement(m_connection, QueryUtils.insertBrand);
+ m_insertHash = new NamedPreparedStatement(m_connection, QueryUtils.insertHash);
+ m_insertUrl = new NamedPreparedStatement(m_connection, QueryUtils.insertUrl);
+ m_insertMentions = new NamedPreparedStatement(m_connection, QueryUtils.insertMentions);
} catch (SQLException ex) {
throw new RuntimeException(ex.getMessage());
}
@@ -80,25 +75,24 @@ public class DataFiller {
try {
for (Tweet.Hashtag hashtag : tweet.entities.hashtags) {
QueryUtils.setInsertHashParams(m_insertHash, tweet.id, hashtag.text);
- m_insertHash.executeUpdate();
+ m_insertHash.getStmt().executeUpdate();
}
for (Tweet.Url url : tweet.entities.urls) {
QueryUtils.setInsertHashParams(m_insertUrl, tweet.id, url.expanded_url);
- m_insertUrl.executeUpdate();
+ m_insertUrl.getStmt().executeUpdate();
}
for (Tweet.Mention mention : tweet.entities.user_mentions) {
QueryUtils.setInsertMentionsParams(m_insertMentions, tweet.id, mention.id);
- m_insertMentions.executeUpdate();
+ m_insertMentions.getStmt().executeUpdate();
}
- QueryUtils.setInsertParams(m_insertTweet, m_insertProfile, m_insertPosted, tweet);
- m_insertTweet.executeUpdate();
- m_insertProfile.executeUpdate();
- m_insertPosted.executeUpdate();
+ QueryUtils.setInsertParams(m_insertTweet, m_insertProfile, tweet);
+ m_insertTweet.getStmt().executeUpdate();
+ m_insertProfile.getStmt().executeUpdate();
List<String> brands = getBrands(tweet);
for (String brand : brands) {
QueryUtils.setInsertBrandParams(m_insertBrand, tweet.id, brand);
- m_insertBrand.executeUpdate();
+ m_insertBrand.getStmt().executeUpdate();
}
} catch (SQLException ex) {
Logger.getLogger(DataFiller.class.getName()).log(Level.SEVERE, null, ex);