[Schmitzm-commits] r1833 - trunk/schmitzm-db/src/main/java/de/schmitzm/postgres

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Sun Jan 22 13:27:51 CET 2012


Author: alfonx
Date: 2012-01-22 13:27:51 +0100 (Sun, 22 Jan 2012)
New Revision: 1833

Added:
   trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGColumn.java
Modified:
   trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGUtil.java
Log:


Added: trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGColumn.java
===================================================================
--- trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGColumn.java	2012-01-22 00:37:51 UTC (rev 1832)
+++ trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGColumn.java	2012-01-22 12:27:51 UTC (rev 1833)
@@ -0,0 +1,54 @@
+package de.schmitzm.postgres;
+
+/**
+ * Hält Informationen über eine Spalte in einer PG-Tabelle. Informationen wie Spaltenname und Datentyp...
+ */
+public class PGColumn {
+
+	private final String fieldname;
+	private final String typename;
+	private final Boolean notNull;
+	private final Boolean hasDefault;
+
+	public PGColumn(String fieldname, String typename, Boolean notNull, Boolean hasDefault) {
+		this.fieldname = fieldname;
+		this.typename = typename;
+		this.notNull = notNull;
+		this.hasDefault = hasDefault;
+	}
+
+	public String getFieldname() {
+		return fieldname;
+	}
+
+	public String getTypename() {
+		return typename;
+	}
+
+	public Boolean getNotNull() {
+		return notNull;
+	}
+
+	public Boolean getHasDefault() {
+		return hasDefault;
+	}
+
+	public boolean isGeometry() {
+		if ("geometry".equals(typename))
+			return true;
+		if ("point".equals(typename))
+			return true;
+		if ("line".equals(typename))
+			return true;
+		if ("polygon".equals(typename))
+			return true;
+		return false;
+	}
+
+	@Override
+	public String toString() {
+		return "PGColumn [fieldname=" + fieldname + ", typename=" + typename + ", notNull=" + notNull + ", hasDefault="
+				+ hasDefault + "]";
+	}
+
+}


Property changes on: trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGColumn.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGUtil.java
===================================================================
--- trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGUtil.java	2012-01-22 00:37:51 UTC (rev 1832)
+++ trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGUtil.java	2012-01-22 12:27:51 UTC (rev 1833)
@@ -259,7 +259,7 @@
 	}
 
 	/**
-	 * Liefdert eine Liste alle Spaltennamen in einer Tabelle.
+	 * Liefert eine Liste alle Spaltennamen in einer Tabelle.
 	 * 
 	 * ACHTUNG! Diese Methode schaut gerade nur auf den Tabellennamen! Das SChema wird ignoriert. Es gibt also probleme,
 	 * wenn der selbe Tabellenname noch in einem anderen Schema existiert.
@@ -268,9 +268,38 @@
 	 *            darf auch schema-informationen enthalten.
 	 * @throws SQLException
 	 */
-	public List<String> listColumnsInTable(Connection c, String tableName) throws SQLException {
+	public List<String> listColumnNamesInTable(Connection c, String tableName) throws SQLException {
 		List<String> cols = new ArrayList<String>();
 
+		for (PGColumn pgcol : listColumnsInTable(c, tableName)) {
+			cols.add(pgcol.getFieldname());
+		}
+
+		return cols;
+	}
+
+	public static PGColumn getFirstGeometryColumn(Connection c, String tablename) throws SQLException {
+		for (PGColumn col : PGUtil.listColumnsInTable(c, tablename)) {
+
+			if (col.isGeometry())
+				return col;
+		}
+		return null;
+	}
+
+	/**
+	 * Liefdert eine Liste alle Spaltenin einer Tabelle.
+	 * 
+	 * ACHTUNG! Diese Methode schaut gerade nur auf den Tabellennamen! Das SChema wird ignoriert. Es gibt also probleme,
+	 * wenn der selbe Tabellenname noch in einem anderen Schema existiert.
+	 * 
+	 * @param tableName
+	 *            darf auch schema-informationen enthalten.
+	 * @throws SQLException
+	 */
+	public static List<PGColumn> listColumnsInTable(Connection c, String tableName) throws SQLException {
+		List<PGColumn> cols = new ArrayList<PGColumn>();
+
 		String schema = "public";
 
 		if (tableName.contains(".")) {
@@ -288,7 +317,16 @@
 		ResultSet rs = c.createStatement().executeQuery(sql);
 		try {
 			while (rs.next()) {
-				cols.add(rs.getString(1));
+
+				String fieldname = rs.getString(2);
+				String typename = rs.getString(3);
+				Boolean notNull = rs.getBoolean(6);
+				Boolean hasDefault = rs.getBoolean(7);
+
+				PGColumn pgcol = new PGColumn(fieldname, typename, notNull, hasDefault);
+
+				cols.add(pgcol);
+
 			}
 		} finally {
 			rs.close();



More information about the Schmitzm-commits mailing list