mysql 中的参数元数据和结果集元数据

参数元数据:参数化的数据

列如:

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);
            }
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值