实际应用例子
在项目中需要获取数据库中元数据相关信息,比如表名,字段名,长度等jdbcTemplate 可以通过SqlRowSetMetaData 可以获取到部分元数据,但是不能获取备注信息(comment中的内容)已经有jdbcTemplate对象,只需要通过jdbcTemplate获取jdbc Connection即可获取全部信息
代码示例如下:
Listdtfds = new ArrayList ();dwJdbcTemplate.execute(new ConnectionCallback
>() { @Override public List doInConnection(Connection con) throws SQLException, DataAccessException { DatabaseMetaData dbmd = con.getMetaData(); // 表名列表 String[] types = { "TABLE" }; ResultSet tableRS = dbmd.getTables(null, null, dtco, types); tableRS.last(); int cnt = tableRS.getRow(); tableRS.beforeFirst(); if (1 != cnt) { return null; } while (tableRS.next()) { String tablename = tableRS.getString("TABLE_NAME"); ResultSet resultSet = dbmd.getColumns(null, null, tablename, null); while (resultSet.next()) { String name = resultSet.getString("COLUMN_NAME"); String type = resultSet.getString("TYPE_NAME"); String colRemarks = resultSet.getString("REMARKS"); int size = resultSet.getInt("COLUMN_SIZE"); Dtfd dtfd = new Dtfd(); dtfd.setDtco(dtco); dtfd.setColu(name); dtfd.setClna(colRemarks); dtfd.setDttp(type); dtfd.setDtle(size); dtfds.add(dtfd); } } return null; }});return dtfds;