[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