JDBC笔记-Meta类

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";

}

<完>

你可能感兴趣的:(JDBC笔记-Meta类)