bos 获取数据库连接_JDBC入门(三) —— 获取元数据

博客主要介绍了JDBC获取数据库元数据的相关内容。包括获取数据库元数据、参数元数据和结果集元数据的API,如获取数据库产品名称、版本号、参数数量、结果集列数等,还给出了部分示例及控制台结果。

e9c09f6518005cee6fd2b41f6e5a6d8d.png

一、数据库元数据

JDBC获取数据库元数据的相关API:

  • DatabaseMetaData conn.getMetaData() —— 获取一个 DatabaseMetaData 对象,该对象包含关于此 Connection 对象所连接的数据库的元数据。
  • String getDatabaseProductName() —— 获取此数据库产品的名称
  • String getDatabaseProductVersion() —— 获取此数据库产品的版本号
  • String getURL() —— 获取此DBMS的URL
  • String getUserName() —— 获取此数据库的已知的用户名称

示例:

// 参数:
// jdbc协议:postgresql子协议://主机地址:数据库端口号/要连接的数据库名
String url = "jdbc:postgresql://localhost:5432/test2";
// 数据库用户名
String user = "postgres";
// 数据库密码
String password = "123456";

// 1. 加载Driver类,Driver类对象将自动被注册到DriverManager类中
Class.forName("org.postgresql.Driver");

// 2. 连接数据库,返回连接对象
Connection conn = DriverManager.getConnection(url, user, password);

// 3. 获取数据库元数据,并打印
DatabaseMetaData metaData = conn.getMetaData();		// 获取DatabaseMetaData对象
System.out.println(metaData.getDatabaseProductName());	// 打印数据库产品的名称
System.out.println(metaData.getDatabaseProductVersion());	// 打印数据库版本号
System.out.println(metaData.getURL());			// 打印数据库的URL
System.out.println(metaData.getUserName());		// 打印数据库的用户名

// 4. 关闭与数据库的连接
conn.close();

控制台结果:

f4ad12d50efe1f1bee9b7823f435d531.png

二、参数元数据

JDBC获取预编译SQL语句参数的相关API:

  • ParameterMetaData pstmt.getParameterMetaData() —— 返回一个 ParameterMetaData 对象,它包含有关此 PreparedStatement 对象的每个参数标记的编号、类型和属性的信息
  • int getParameterCount() —— 获取 PreparedStatement 对象中的参数的数量。

示例:

// 省略参数代码...

// 1. 加载Driver类,Driver类对象将自动被注册到DriverManager类中
Class.forName("org.postgresql.Driver");

// 2. 连接数据库,返回连接对象
Connection conn = DriverManager.getConnection(url, user, password);

// 3. 预编译SQL语句
String sql = "INSERT INTO Student(Sno, Sname, Ssex, Sage, Sdept) VALUES(?, ?, ?, ?, ?);";
 PreparedStatement pstmt = pstmt = conn.prepareStatement(sql);
 
 // 4. 获取预编译SQL语句的参数,并打印
 ParameterMetaData pMetaData = pstmt.getParameterMetaData();
 System.out.println(pMetaData.getParameterCount());		// 打印预编译SQL语句中参数的数量
    
// 5. 关闭与数据库的连接
conn.close();

三、结果集元数据

JDBC获取j结果集元数据的相关API:

  • ResultSetMetaData getMetaData() —— 返回一个 ResultSetMetaData 对象,它包含查询结果集ResultSet对象的元数据。
  • int getColumnCount() —— 返回此 ResultSet 对象中的列数。
  • String getColumnName(int column) —— 获取指定列的名称。

示例:

// 省略参数代码...

// 1. 加载Driver类,Driver类对象将自动被注册到DriverManager类中
Class.forName("org.postgresql.Driver");

// 2. 连接数据库,返回连接对象
Connection conn = DriverManager.getConnection(url, user, password);

// 3。 预编译SQL语句并执行
String sql = "SELECT * FROM Student;";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();

// 4. 获取查询结果集的元数据,并打印
ResultSetMetaData rMetaData = rs.getMetaData();
for(int i = 1; i <= rMetaData.getColumnCount(); i++) {
System.out.println(rMetaData.getColumnName(i));		// 打印各个列的列名
};

// 5. 关闭与数据库的连接
conn.close();

控制台结果:

57d35812326dca8779910a74aee5952c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值