summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2014-05-15 15:33:50 +0200
committerPeter Wu <peter@lekensteyn.nl>2014-05-15 16:09:16 +0200
commit8a5d104cfe02f83d4ff9256b06c21f1d0051a609 (patch)
tree40bc3ed11c4bc1f5ae276693f1a1d58b684ab159 /src
parent929d35f14903cd8a1d023761529e2e346f39d92c (diff)
downloadGoldfarmer-8a5d104cfe02f83d4ff9256b06c21f1d0051a609.tar.gz
Make database connection only once
Diffstat (limited to 'src')
-rw-r--r--src/main/Analyzor.java7
-rw-r--r--src/main/FarmShell.java21
-rw-r--r--src/main/Main.java9
3 files changed, 28 insertions, 9 deletions
diff --git a/src/main/Analyzor.java b/src/main/Analyzor.java
index 51e080e..cf01563 100644
--- a/src/main/Analyzor.java
+++ b/src/main/Analyzor.java
@@ -31,7 +31,11 @@ public class Analyzor {
//the resultset of the query or the import
ResultSet data;
- Connection connection;
+ private final Connection connection;
+
+ Analyzor(Connection connection) {
+ this.connection = connection;
+ }
//reads the lexicons
void readLexicon() throws FileNotFoundException {
@@ -65,7 +69,6 @@ public class Analyzor {
PreparedStatement statement;
//make a connection to the database and execute the query
- connection = Main.cb.create();
statement = connection.prepareStatement(query);
data = statement.executeQuery();
}
diff --git a/src/main/FarmShell.java b/src/main/FarmShell.java
index 93cb928..a8e8a8e 100644
--- a/src/main/FarmShell.java
+++ b/src/main/FarmShell.java
@@ -1,6 +1,8 @@
package main;
+import database.ConnectionBuilder;
import java.io.IOException;
+import java.sql.Connection;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.NoSuchElementException;
@@ -14,12 +16,25 @@ public class FarmShell {
private final Scanner scanner = new Scanner(System.in);
- Analyzor analyzor;
+ private Analyzor cached_analyzor;
+ private final ConnectionBuilder dbConnectionBuilder;
+
+ FarmShell(ConnectionBuilder dbConnectionBuilder) {
+ this.dbConnectionBuilder = dbConnectionBuilder;
+ }
private void printPrompt() {
System.out.print("$ ");
}
+ private Analyzor getAnalyzor() throws SQLException {
+ if (cached_analyzor == null) {
+ Connection dbCon = dbConnectionBuilder.create();
+ cached_analyzor = new Analyzor(dbCon);
+ }
+ return cached_analyzor;
+ }
+
/**
* Processes commands from stdin until the exit command is received or EOF.
*/
@@ -68,8 +83,6 @@ public class FarmShell {
* otherwise.
*/
public boolean execute(String[] args) {
-
-
try {
Command command = Command.fromString(args[0]);
String[] params = Arrays.copyOfRange(args, 1, args.length);
@@ -149,7 +162,7 @@ public class FarmShell {
System.out.println("not yet implemented");
break;
case sentiment:
- analyzor.sentimentAnalysis(params[0]);
+ getAnalyzor().sentimentAnalysis(params[0]);
break;
case wordcloud:
analyzor.makeWordCloud(params[0]);
diff --git a/src/main/Main.java b/src/main/Main.java
index 1766332..88b7a04 100644
--- a/src/main/Main.java
+++ b/src/main/Main.java
@@ -15,7 +15,7 @@ import java.util.Scanner;
*/
public class Main {
- static public ConnectionBuilder cb;
+ private final ConnectionBuilder cb;
public static void main(String[] args) {
Main main;
@@ -26,6 +26,7 @@ public class Main {
System.exit(1);
return;
}
+ main.run();
}
private String[] leftover_params;
@@ -36,9 +37,11 @@ public class Main {
.setPassword("2IOC02")
.setDbName("twitter");
parseGlobalOptions(args);
- try {
+ }
- FarmShell shell = new FarmShell();
+ public void run() {
+ try {
+ FarmShell shell = new FarmShell(cb);
if (leftover_params != null && leftover_params.length > 0) {
shell.execute(leftover_params);
}