1.DatabaseMetaData
DatabaseMetaData类中提供了许多方法用于获得数据源的各种信息。getURL() 返回String类型的数据库的URL
getUserName() 返回用户名
isReadOnly() 数据库是否为只读数据库
getDatabaseProductName()
getDatabaseProductVersion()
getDriverName()
getDriverVersion() 数据库驱动的版本
2.ResultSetMetaData
ResultSetMetaData类中,提供了获取结果集属性的各种信息。getColumnCount() 本次结果集中取得的列总数
isAutoIncrement(int column) 是否为自增的字段
getColumnName(int column) 取得列的名字
getColumnLabel(int column) 取得列的别名,如果没有别名则和上面的Name相同。
别名的作用:通常通过SQL中取得的数据会直接存放到Java类中,
但是Java类的属性不一定和数据库中的列名一致,这时候SQL语句中就需要使用别名啦。
select db_column_name class_property_alias_name from table where id=1;
int numberOfColumns = resultSetMetaData.getColumnCount();
while(resultSet.next()){
for(int j=0; j < numberOfColumns; j++){
BeanUtils.setProperty(entity, resultSetMetaData.getColumnLabel(j+1), resultSet.getObject(j+1));
}
}
注意由于BeanUtils是外部工具,所以这里操作的entity的类必须是public的,否则包外边的类是无法访问的。
3.Java中的属性和字段区别
这两个概念是完全不同的。Java中的属性,通常可以理解为get和set方法操作的内容。而字段,通常叫做类成员变量。属性只局限于类中方法的声明,并不与类中其他成员相关。例如:
void setA(String s){} String getA(){}当一个类中拥有这样一对方法时,我们可以说,这个类中拥有一个可读写的a属性(注意是小写a)。如果去掉了set的方法,则是可读属性,反之亦然。
类成员(字段),通常是在类中定义的类成员变量,如下的A类中有一个成员变量(字段)叫做s。
public class A{
private String s = "123";
}
<完>