第一节:使用 DatabaseMetaData 获取数据库基本信息
- DatabaseMetaData 可以得到数据库的一些基本信息,包括数据库的名称、版本,以及得到表的信息。
- String getDatabaseProductName() 获取此数据库产品的名称。
- int getDriverMajorVersion() 获取此 JDBC 驱动程序的主版本号。
- int getDriverMinorVersion() 获取此 JDBC 驱动程序的次版本号。
实例:
工具类:
public class DbUtil {
private static String dbUrl="jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF-8";
private static String dbUserName="root";
private static String dbPassword="root";
private static String jdbcName="com.mysql.jdbc.Driver";
/**
* 获取数据库连接
* @return
* @throws Exception
*/
public Connection getCon() throws Exception{
Class.forName(jdbcName);
Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
return con;
}
/**
* 关闭连接
* @param con
* @throws Exception
*/
public void close(Statement stmt,Connection con)throws Exception{
if(stmt!=null){
stmt.close();
if(con!=null){
con.close();
}
}
}
}
测试类:
public class jdbcTest {
public static void main(String[] args)throws Exception {
DbUtil dbUtil=new DbUtil();
Connection con=dbUtil.getCon();
DatabaseMetaData dmd=con.getMetaData();//获取元数据
System.out.println("数据库名称:"+dmd.getDatabaseProductName());
System.out.println("数据库版本:"+dmd.getDriverMajorVersion()+"."+dmd.getDriverMinorVersion());
}
}
运行结果:
第二节:使用 ResultSetMetaData 获取 ResultSet 对象中的信息(常用)
- DatabaseMetaData 可以获取关于ResultSet对象中列的基本信息。
- int getColumnCount() 返回此 ResultSet 对象中的列数。
- String getColumnName(int column) 获取指定列的名称。
- int getColumnTypeName(int column) 获取指定列的 SQL 类型名称
实例:获取数据表中字段的基本信息
测试类:
public class jdbcTest {
public static void main(String[] args)throws Exception {
DbUtil dbUtil=new DbUtil();
Connection con=dbUtil.getCon();
String sql="select * from books";
PreparedStatement pstmt=con.prepareStatement(sql);
ResultSetMetaData rsmd=pstmt.getMetaData();
int num=rsmd.getColumnCount();//获取元数据的总数
System.out.println("共有"+num+"列");
for(int i=1;i<num;i++){
System.out.println(rsmd.getColumnName(i)+","+rsmd.getColumnTypeName(i));
}
}
}
运行结果: