aboutsummaryrefslogtreecommitdiff
path: root/src/com/juick/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/juick/server')
-rw-r--r--src/com/juick/server/TagQueries.java63
1 files changed, 17 insertions, 46 deletions
diff --git a/src/com/juick/server/TagQueries.java b/src/com/juick/server/TagQueries.java
index 4f0639f96..b570c32ad 100644
--- a/src/com/juick/server/TagQueries.java
+++ b/src/com/juick/server/TagQueries.java
@@ -29,10 +29,10 @@ import java.util.ArrayList;
* @author Ugnich Anton
*/
public class TagQueries {
-
+
public static com.juick.Tag getTag(Connection sql, String tag, boolean autoCreate) {
com.juick.Tag ret = null;
-
+
PreparedStatement stmt = null;
ResultSet rs = null;
try {
@@ -50,61 +50,32 @@ public class TagQueries {
} finally {
Utils.finishSQL(rs, stmt);
}
-
+
if (ret == null && autoCreate) {
ret = new com.juick.Tag();
ret.TID = createTag(sql, tag);
ret.Name = tag;
}
-
+
return ret;
}
-
+
public static ArrayList<com.juick.Tag> getTags(Connection sql, String[] tags, boolean autoCreate) {
ArrayList<com.juick.Tag> ret = new ArrayList<com.juick.Tag>();
-
- PreparedStatement stmt = null;
- ResultSet rs = null;
- try {
- stmt = sql.prepareStatement(Utils.buildQueryArray("SELECT tag_id,name FROM tags WHERE name IN (", tags.length, ")"));
- Utils.stmtSetStringArray(stmt, 1, tags);
- rs = stmt.executeQuery();
- rs.beforeFirst();
- while (rs.next()) {
- com.juick.Tag t = new com.juick.Tag();
- t.TID = rs.getInt(1);
- t.Name = rs.getString(2);
+
+ for (int i = 0; i < tags.length; i++) {
+ com.juick.Tag t = getTag(sql, tags[i], autoCreate);
+ if (t != null) {
ret.add(t);
}
- } catch (SQLException e) {
- System.err.println(e);
- } finally {
- Utils.finishSQL(rs, stmt);
- }
-
- if (tags.length != ret.size() && autoCreate) {
- for (int i = 0; i < tags.length; i++) {
- boolean found = false;
- for (int n = 0; n < ret.size(); n++) {
- if (tags[i].equalsIgnoreCase(ret.get(n).Name)) {
- found = true;
- break;
- }
- }
- if (!found) {
- com.juick.Tag t = new com.juick.Tag();
- t.TID = createTag(sql, tags[i]);
- t.Name = tags[i];
- }
- }
}
-
+
return ret;
}
-
+
public static int createTag(Connection sql, String name) {
int ret = 0;
-
+
PreparedStatement stmt = null;
ResultSet rs = null;
try {
@@ -120,13 +91,13 @@ public class TagQueries {
} finally {
Utils.finishSQL(rs, stmt);
}
-
+
return ret;
}
-
+
public static ArrayList<com.juick.Tag> getUserTagsAll(Connection sql, int uid) {
ArrayList<com.juick.Tag> tags = new ArrayList<com.juick.Tag>();
-
+
PreparedStatement stmt = null;
ResultSet rs = null;
try {
@@ -147,10 +118,10 @@ public class TagQueries {
}
return tags;
}
-
+
public static ArrayList<String> getUserBLTags(Connection sql, int uid) {
ArrayList<String> tags = new ArrayList<String>();
-
+
PreparedStatement stmt = null;
ResultSet rs = null;
try {