/**
* 根据数据库表名获取字段名,返回字段名数组
*
*/
public String[] getDBColumns(String tableName) throws Exception
{
conn = this.getConn();
//字段名数组
String[] columns = new String[1];
if(conn != null)
{
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM "+tableName);
//结果集元数据
ResultSetMetaData rsMetaData = rs.getMetaData();
//字段数量
int colCount = rsMetaData.getColumnCount();
columns = new String[colCount];
//读取字段名到数组
for(int i=1; i<=colCount; i++)
columns[i-1] = rsMetaData.getColumnName(i);
//关闭连接
rs.close();
stmt.close();
conn.close();
}
return columns;
}
3
顶
1
踩
分享到:
2009-04-10 10:49
浏览 4168
分类:非技术
评论
2 楼
soaring
2009-04-12
谢谢你的提醒,一开始我没搞明白怎么使用DatabaseMetaData类getColumns(catalog, schemaPattern, tableNamePattern, columnNamePattern);方法的参数。现在重新实现了,代码如下:
[code='java']
/**
* 根据数据库名及表名获取字段名
* @param dbName
* @param tableName
* @return
* @throws Exception
*/
public ArrayList getDBColMetaData(String dbName, String tableName) throws Exception
{
ArrayList colList = new ArrayList();
//获取数据库元数据
DatabaseMetaData dbMetaData = new DatabaseMetaData((com.mysql.jdbc.Connection) getConn(), dbName);
rs = dbMetaData.getColumns(null, dbName, tableName, "%");
while(rs.next())
{
colList.add(rs.getString(4));
}
return colList;
}
1 楼
xinannansha
2009-04-10
建议使用DatabaseMetaData获取字段信息,该类提供很多方法获取数据库信息,包括获取表、字段、索引、主键、外键等等
DatabaseMetaData dbmd = conn.getMetaData();
ResultSet rs = dbmd.getColumns(catalog, schemaPattern, tableNamePattern, columnNamePattern);