forked from mark-watson/Java-AI-Book-Code
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDumpMetaData.java
More file actions
executable file
·67 lines (57 loc) · 2.17 KB
/
DumpMetaData.java
File metadata and controls
executable file
·67 lines (57 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package database;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class DumpMetaData {
public DumpMetaData(String connectionUrl) throws SQLException, ClassNotFoundException {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection conn = DriverManager.getConnection(connectionUrl);
System.out.println("conn: " + conn);
Statement s = conn.createStatement();
DatabaseMetaData md = conn.getMetaData();
// Discovery all table names in this database:
List<String> tableNames = new ArrayList<String>(5);
ResultSet table_rs = md.getTables(null, null, "%", new String[]{"TABLE"});
while (table_rs.next()) {
System.out.println("Table: " + table_rs.getString(3));
tableNames.add(table_rs.getString(3));
}
// Loop over all tables printing column meta data and the first row:
for (String tableName : tableNames) {
System.out.println("\n\n** Processing table " + tableName + "\n");
String query = "SELECT * from " + tableName;
System.out.println(query);
ResultSet rs = s.executeQuery(query);
ResultSetMetaData table_meta = rs.getMetaData();
int columnCount = table_meta.getColumnCount();
System.out.println("\nColumn meta data for table:");
List<String> columnNames = new ArrayList<String>(10);
columnNames.add("");
for (int col=1; col<=columnCount; col++) {
System.out.println("Column " + col + " name: " + table_meta.getColumnLabel(col));
System.out.println(" column data type: " + table_meta.getColumnTypeName(col));
columnNames.add(table_meta.getColumnLabel(col));
}
System.out.println("\nFirst row in table:");
if (rs.next()) {
for (int col=1; col<=columnCount; col++) {
System.out.println(" " + columnNames.get(col) + ": " + rs.getString(col));
}
}
}
}
/**
* @param args
* @throws ClassNotFoundException
* @throws SQLException
*/
public static void main(String[] args) throws SQLException, ClassNotFoundException {
new DumpMetaData("jdbc:derby:test_database");
}
}