resultsetmetadata(resultsetmetadata的应用)
ResultSet怎么获取数据库中的最后一行记录的第一个字段
获得ResultSet的记录个数:
因为ResultSet没有方法可直接得到记录数,只有另想方法,可采用如下方法:
Statement stmt = db.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery(sql);
rs.last();//移到最后一行
int count = rs.getRow();
rs.beforeFirst();//移到初始位置

如何判断数据库中某个字段不存在(用java编写)
想快,就根据数据库,直接读取结构的表,
否则,SELECT * FROM table (添加一个条件,别读回所以记录,如WHERE 1=2之类)
再通过ResultSet来判断
ResultSetMetaData getMetaData()
得到 ResultSetMetaData 再逐个field比较
ResultSetMetaData怎么获取主键
方法一:通过connection来获得
Java代码 :
private String getIdName(Connection conn,String tableName){
String idName = "";
DatabaseMetaData metaData = null;
try {
metaData = conn.getMetaData();
ResultSet rs = metaData.getColumns(conn.getCatalog(), "%", tableName, "%ID");
if(rs.next()){
idName = rs.getString("COLUMN_NAME");
}
} catch (Exception e) {
logger.error(e);
}
return idName;
}
方法二:通过结果集ResultSet获得
Java代码 :
private String getIdName(ResultSet rs){
String idName = "";
ResultSetMetaData metaData = null;
try {
metaData = rs.getMetaData();
idName = metaData.getColumnName(1);
} catch (Exception e) {
logger.error("查询表的主键名出错! ",e);
}
return idName;
}
其中rs为select * from tableName;的结果集。
resultsetmetadata rsmd = rs.getmetadata;是什么意思
ResultSetMetaData rsmt=rs.getMetaData();
得到结果集(rs)的结构,比如字段数、字段名等。
使用rs.getMetaData().getTableName(1))就可以返回表名
rs.getMetaData().getColumnCount()
取得列数
例子:
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");//得到查询结果,一个数据集
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount(); //得到数据集的列数