第一章JDBC元数据(了解)
2.1元数据的概述
包含了数据库、表、列的定义信息,关于数据库的整体综合信息。
2.2元数据的分类
2.2.1DataBaseMetaData,数据库元数据
- getURL():返回一个String类对象,代表数据库的URL。
- getUserName():返回连接当前数据库管理系统的用户名。
- getDriverName():返回驱动驱动程序的名称。
2.2.2 ParameterMetaData,参数元数据
-
getParameterCount()
获得指定参数的个数 -
getParameterType(int param)
获得指定参数的sql类型并不是所有数据库都支持,使用MySQL时,这个方法只会返回varchar的int值(即12)
-
getParameterTypeName(int param) — 参数类型名称
getParameterType异常处理
Parameter metadata not available for the given statement
解决方法:url后面拼接参数
?generateSimpleParameterMetadata=true
demo:
public void demo2() throws SQLException {
Connection conn = JDBCUtils.getConnection();
String sql = "select * from users where id = ? and password=?";
PreparedStatement stmt = conn.prepareStatement(sql);
// 通过ParameterMetaData 获得 ? 相关信息
ParameterMetaData parameterMetaData = stmt.getParameterMetaData();
// 获得个数
int count = parameterMetaData.getParameterCount();
System.out.println(count);
for (int i = 1; i <= count; i++) {
// 该方法并不是所有数据库都支持 --- MySQL不支持(所有返回类型都是varchar)
int type = parameterMetaData.getParameterType(i);
System.out.println(type);
System.out.println(parameterMetaData.getParameterTypeName(i));
}
}
2.2.3ResultSetMetaData,结果集元数据
- getColumnCount()
返回resultset对象的列数 - getColumnName(int column)
获得指定列的名称 - getColumnTypeName(int column)
获得指定列的类型
demo:
public void demo3() throws SQLException {
Connection conn = JDBCUtils.getConnection();
String sql = "select * from users";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
// 获得结果集元数据
ResultSetMetaData resultSetMetaData = rs.getMetaData();
int count = resultSetMetaData.getColumnCount();
// 打印table 第一行
for (int i = 1; i <= count; i++) {
System.out.print(resultSetMetaData.getColumnName(i) + "\t");
}
System.out.println();
// 打印每列类型
for (int i = 1; i <= count; i++) {
System.out.print(resultSetMetaData.getColumnTypeName(i) + "\t");
}
System.out.println();
// 打印table数据
while (rs.next()) {
for (int i = 1; i <= count; i++) {
System.out.print(rs.getObject(i) + "\t");
}
System.out.println();
}
}
2.3使用元数据抽取JDBC工具类(增、删、改)
public class JDBCUtils {

本文详细介绍了JDBC的元数据,包括DatabaseMetaData、ParameterMetaData和ResultSetMetaData的使用,以及如何利用元数据进行数据库操作。接着,重点讲解了JdbcTemplate的使用,包括配置Druid连接池、实现增删改查操作,并通过多种API查询数据,如queryForInt、queryForLong、queryForObject、queryForMap和queryForList等。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



