diff options
author | Peter Wu <peter@lekensteyn.nl> | 2014-05-15 15:33:50 +0200 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2014-05-15 16:09:16 +0200 |
commit | 8a5d104cfe02f83d4ff9256b06c21f1d0051a609 (patch) | |
tree | 40bc3ed11c4bc1f5ae276693f1a1d58b684ab159 /src | |
parent | 929d35f14903cd8a1d023761529e2e346f39d92c (diff) | |
download | Goldfarmer-8a5d104cfe02f83d4ff9256b06c21f1d0051a609.tar.gz |
Make database connection only once
Diffstat (limited to 'src')
-rw-r--r-- | src/main/Analyzor.java | 7 | ||||
-rw-r--r-- | src/main/FarmShell.java | 21 | ||||
-rw-r--r-- | src/main/Main.java | 9 |
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); } |