如题
谁懂怎么通过表名称 获取表的所有字段名称及主键名称?最好附简单代码
[code="java"]
try {
Connection con = dataSource.getConnection();//你可以采用某种方式获得Connection
DatabaseMetaData meta = con.getMetaData();
//列名
ResultSet rs = meta.getColumns("database_name", "", "table_name", null);
while(rs != null && rs.next()){
String col = rs.getString("COLUMN_NAME");
}
//主键
ResultSet ids = meta.getPrimaryKeys("database_name", "", "table_name");
while(ids != null && ids.next()){
String col = ids.getString("COLUMN_NAME");
String key = ids.getString("PK_NAME");
}
} catch (SQLException e) {
e.printStackTrace();
}
[/code]
更多信息,你可以参考[url]http://e-learning.zjgsu.edu.cn/jdk5doc_zh_CN/java/sql/DatabaseMetaData.html[/url]
另外要说明的是,这种方式依赖于底层JDBC驱动的实现。上面的例子在MySQL驱动下完成。
从你这图来看, 你是想从POJO类中来获取字段?
那就用反射吧.
Class c = Class.forName("com.eplang.bean.User");
Field[] fields = c.getDeclaredFields();
for (Field field : fields)
{
System.out.println("这个是修饰符: " + Modifier.toString(field.getModifiers()));
System.out.println("这个是变量类型: " + field.getType().getName());
System.out.println("这个是变量名: " + field.getName());
}
用的什么数据库?
desc <表名称>
这个能看到所有字段名
至于怎么得到主键外键之类的,我也不太清楚
每种数据库都会有自己的数据字典表,通过这个表应该可以获取你需要的信息!