怎么获取数据库字段对应的表名
如何获取数据库字段对应的表名?我是这样写的:Java code// sql语句String sql select a.*, b.* from tab
如何获取数据库字段对应的表名?
我是这样写的:
Java code// sql语句String sql = "select a.*, b.* from table1 a, table2 b";// 链接数据库Connection conn = MySqlConnection.getConnection();PreparedStatement ps = (PreparedStatement) conn .prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);ResultSet rs = ps.executeQuery();// 获取数据while (rs.next()) { for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { // 存放数据,以“表.字段”形式 System.out.println(rs.getMetaData().getTableName(i) + "." + rs.getMetaData().getColumnLabel(i)); } }
,
结果是mysql数据库可以正常的取得表名。可是sqlserver等数据库却无法取得,不知道原因在哪里,我又应该怎么写?
[解决办法]1.不清楚楼主为何有这样的需求,程序在编译期仍然不知道表和表结构??楼主难道没将数据表做成持久化模型?
2.第二步似乎不用做PreparedStatement的强制类型转换。
3.sqlServer和mysql在一些操作上确实有区别,比如desc table、show tables,都不能在sqlserver上使用,所以我觉得楼主想要在运行期探查数据库表结构,这种方法似乎不怎么好。
[解决办法][解决办法]