esProc JDBC 获取表信息
概要
通过调用java.sql.DatabaseMetaData 类中的各种方法,程序可以动态了解数据库,获取数据源连接到的数据库表结构等信息。
本文主要介绍如何在 JAVA 中使用 DatabaseMetaData 类获取 esProc JDBC 表信息 (ctx、btx、csv、txt、xlsx、xls)。
使用 esProc JDBC 时设置onlyServer 选项,缺省或为false 时返回本地主目录下的数据文件信息,为true 时返回服务器主目录下的数据文件信息。
getTables()
描述:
返回本地或服务器主目录下的数据文件信息。
语法:
dbmd.getTables(String catalog,String schema,String tableNamePattern,String[] types)
参数:
tableNamePattern:指出要返回表名与该参数匹配的表,参数为空时获取所有表信息。支持模糊查询,查找子目录的数据表时,不同操作系统需使用不同的文件分隔符号。
catalog/schema/types:连接 esProc JDBC 时没有 catalog/schema/types 属性概念,均赋值为 null
示例:
public void getTablesTest() throws ClassNotFoundException, SQLException{
Connection con = null;
// 建立连接
Class.forName("com.esproc.jdbc.InternalDriver");
con= DriverManager.getConnection("jdbc:esproc:local://?onlyServer=true");
DatabaseMetaData dbmd = con.getMetaData();
ResultSet rs =dbmd.getTables(null, null, null, null);
while(rs.next()) {
System.out.println(rs.getString("TABLE_NAME"));
… …
}
… …
}
getColumns()
描述:
返回ResultSet 中表的字段信息。字段类型是一个与 java.sql.Types 中的类型常量匹配的整数。
语法:
dbmd.getColumns(String catalog, String schemaPattern,String tableNamePattern, String columnNamePattern)
参数:
tableNamePattern:指定要获取字段信息的表名,为空时获取所有表的字段信息,查找子目录的数据表时,不同操作系统需使用不同的文件分隔符号。
columnNamePattern:指定列名称,为空时获取所有字段信息。支持模糊查询。
catalog/schemaPattern:连接esProc JDBC 时没有 catalog/ schemaPattern 属性概念,均赋值为 null
示例:
public void getColumnsTest() throws ClassNotFoundException, SQLException{
Connection con = null;
// 建立连接
Class.forName("com.esproc.jdbc.InternalDriver");
con= DriverManager.getConnection("jdbc:esproc:local://?onlyServer=true");
DatabaseMetaData dbmd=con.getMetaData();
ResultSet rs =dbmd.getColumns(null, null, “test.txt”, null);
List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
while(rs.next()) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("COLUMN_NAME", rs.getString("COLUMN_NAME"));
map.put("DATA_TYPE", rs.getString("DATA_TYPE"));
map.put("TYPE_NAME", rs.getString("TYPE_NAME"));
map.put("COLUMN_SIZE", rs.getString("COLUMN_SIZE"));
map.put("NULLABLE", rs.getString("NULLABLE"));
tempList.add(map);
… …
}
… …
}
英文版