参数元数据:参数化的数据
列如:
insert into person (name,age,info) values (?,?,?)
这是一个参数化的sql语句
可以使用 PreparedStatement 对象通过 getParameteMetaData 方法获取的
示例:
import com.utils.JdbcUtil;
import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Demo3 {
public static void main(String[] args) throws SQLException {
// 使用工具类 JdbcUtil 创建 connection 对象
Connection connection = JdbcUtil.getconnection();
// 创建参数化的 sql 语句
String sql = "insert into work(name,age) values (?,?)";
// 创建 预处理搬运工 对象
PreparedStatement preparedStatement = connection.prepareStatement(sql);
// 借助于 预处理搬运工 获取 参数元数据对象
ParameterMetaData parameterMetaData = preparedStatement.getParameterMetaData();
// 得到参数的个数
int parameterCount = parameterMetaData.getParameterCount();
System.err.println(parameterCount);
Object[] objs = {"小红", 20};
// 使用循环对参数化的 sql语句 进行参数赋值
for (int i = 1; i <= parameterCount ; i++) {
preparedStatement.setObject(i,objs[i - 1]);
}
// 使用工具类 关闭资源
JdbcUtil.close(preparedStatement,connection);
}
结果集元数据:
是使用 ResultSet 对象通过getMetaData方法获取来的,结果集元数据中存有查询出来的字段的个数和字段的名字,可以通这些字段来获取具体的数据
示例:
import com.utils.JdbcUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
public class Demo3 {
public static void main(String[] args) throws Exception{
Connection connection = JdbcUtil.getConnection();
String sql = "select * from work";
PreparedStatement preparedStatement = connection.prepareStatement(sql);M
ResultSet resultSet = preparedStatement.executeQuery();
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
System.out.println(columnCount);
for (int i = 1; i <= columnCount ; i++) {
String columnName = metaData.getColumnName(i);
System.out.println(columnName);
}
while (resultSet.next()) {//行
for (int i = 1; i <= columnCount ; i++) {//列
String columnName = metaData.getColumnName(i);
Object object = resultSet.getObject(columnName);
System.out.println(object);
}
}
}
}