本篇文章才是我写这一个系列文章的目的,原来我一般都是使用jdbc获取数据库的元数据,但是有点让我很不爽,每次查数据表和列的时候都要自己写“TABLE_NAME”和“COLUMN_HOME”等名称,所以干脆转到JdbcTemplate实现上。通过JdbcTemplate获取数据库表有两种实现方式:
一、 通过SqlRowSetMetaData类
使用到的类或接口有如下几个:
- org.springframework.jdbc.support.rowset.SqlRowSet接口:该对象和javax.sql.RowSet类相对应,它和RowSet的区别是SqlRowSet中的方法从来不会抛出SQLException异常,通过jdbcTemplate可以获得该对象的实例;
- org.springframework.jdbc.support.rowset.SqlRowSetMetaData接口:是对应于SqlRowSet的元数据接口,和java.sql.ResultSetMetaData相一致,也只是从来不会抛出SQLException异常,通过SqlRowSet可以获得该类的实例;
具体使用实例如下:
SqlRowSet rowSet = jdbcTemplate.queryForRowSet("select * from user limit 0");
SqlRowSetMetaData metaData = rowSet.getMetaData();
int columnCount = metaData.getColumnCount();
for (int i = 1; i <= columnCount;