diff options
-rw-r--r-- | src/main/DataFiller.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/DataFiller.java b/src/main/DataFiller.java index 803d926..71f1822 100644 --- a/src/main/DataFiller.java +++ b/src/main/DataFiller.java @@ -44,6 +44,8 @@ public class DataFiller { m_insertTweetUrl = new NamedPreparedStatement(m_connection, QueryUtils.insertTweetUrl); m_insertUserUrl = new NamedPreparedStatement(m_connection, QueryUtils.insertUserUrl); m_insertMentions = new NamedPreparedStatement(m_connection, QueryUtils.insertMentions); + // enable transactions + connection.setAutoCommit(false); } /** @@ -68,6 +70,18 @@ public class DataFiller { processTweet(tweet.retweeted_status); } + try { + // assume that no previous transaction was started. + saveTweet(tweet); + // concludes the previous query, implicitly starts a new transaction + m_connection.commit(); + } catch (Exception ex) { + m_connection.rollback(); + throw ex; + } + } + + private void saveTweet(Tweet tweet) throws SQLException { String text = sanitizeTweetText(tweet.text); // ensure that the user and tweet are known before adding relations QueryUtils.setInsertParams(m_insertTweet, m_insertProfile, tweet, text); |