Attributtyp ermitteln mit jdbc

holtiwilan

Mitglied
Hallo.
Ich möchte eine variable abfrage struktur mit JDBC realisieren.
Nur brauche ich ja den Typ des Attributes, da ja z.B. der Select für Datum, Text, Int jeweils eine andere Syntax hat.
Wie bekomme ich denn heraus, welchen Typ die Attribute der Tabelle haben.
ab liebsten wäre mir da ja eine Hashmap mit den Attributnamen als Key und dem Typ als Wert.
Habe Leider per Google nichts gefunden und hoffe nun aus die Cracks hier im Forum.

Vielen Dank.

Tim
 
Hallo!

Schau mal hier:
Code:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

/**
 * 
 */

/**
 * @author Darimont
 * 
 */
public class JDBCTypeExtractor {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		Class.forName("com.mysql.jdbc.Driver");

		MysqlDataSource mds = new MysqlDataSource();
		mds.setServerName("localhost");
		mds.setUser("root");
		mds.setPassword("");
		mds.setPort(3306);
		mds.setDatabaseName("test");

		Connection con = mds.getConnection();

		try {

			Statement stmt = con.createStatement();

			ResultSet rs = stmt.executeQuery("SELECT * FROM person");

			ResultSetMetaData rsmd = rs.getMetaData();
			int clmCnt = rsmd.getColumnCount();

			for (int i = 1; i <= clmCnt; i++) {
				System.out.print("Name: " + rsmd.getColumnName(i));
				System.out.print(" SQL-Type: " + rsmd.getColumnTypeName(i));
				System.out.print(" Java-Type: " + rsmd.getColumnClassName(i));
				System.out.println();
			}

			// Alle Daten anzeigen
			while (rs.next()) {
				for (int i = 1; i <= clmCnt; i++) {
					System.out.print(rs.getString(i));
					System.out.print(" ");
				}
				System.out.println();
			}

			rs.close();

		} finally {
			if (con == null)
				con.close();
		}
	}
}

Gruß Tom
 
Zurück