zoukankan      html  css  js  c++  java
  • Java_jdbc 基础笔记之十 数据库连接 (ResultSetMetaData 类)

    ResultSetMetaData 类
    调用ResultSet 的getMetaData()方法得到ResultSetMetaData 类对象;

    可用于获取关于 ResultSet 对象中列的类型和属性信息的对象:
    getColumnName(int column):获取指定列的名称
    getColumnTypeName(int column):检索指定列的数据库特定的类型名称。
    getColumnDisplaySize(int column):指示指定列的最大标准宽度,以字符为单位。
    isNullable(int column):指示指定列中的值是否可以为 null。
    主要使用方法:
    String getColumnLabel(int column):获取指定的列的别名,其中索引从1开始
    getColumnCount():返回当前 ResultSet 对象中的列数。

    Java 通过JDBC获得连接以后,得到一个Connection 对象,可以从这个对象获得有关数据库管理系统的各种信息,包括数据库中的各个表,表中的各个列,数据类型,触发器,存储过程等各方面的信息。根据这些信息,JDBC可以访问一个实现事先并不了解的数据库。
    获取这些信息的方法都是在DatabaseMetaData类的对象上实现的,而DataBaseMetaData对象是在Connection对象上获得的。

    public void testResultSetMetaData() {
            Connection conn = null;
            PreparedStatement ps = null;
            ResultSet rs = null;
            String sql = "SELECT flow_id flowId, type, id_card iDCard, "
                    + "exam_card examCard, student_name studentName, "
                    + "location, grade " + "FROM examstudent WHERE flow_id = ?";
            try {
                conn=JDBCTools.getConnection();
                ps=conn.prepareStatement(sql);
                ps.setInt(1, 5);
                rs=ps.executeQuery();
                //得到ResultSetMetaData 对象
                ResultSetMetaData rsmd=rs.getMetaData();
                Map<String, Object> values = new HashMap<String, Object>();
                if(rs.next()){
                    for (int i = 0; i < rsmd.getColumnCount(); i++) {
                        String columnLabel = rsmd.getColumnLabel(i + 1);// 别名
                        Object columnValue = rs.getObject(i + 1);
                        values.put(columnLabel, columnValue);//填充
                    }
    
                }
                //反射
                Class clazz=Student.class;
                Object obj=clazz.newInstance();
                //遍历MAP
                for(Map.Entry<String, Object> entry : values.entrySet()){
                    String fieldName = entry.getKey();
                    Object fieldValue = entry.getValue();
                    System.out.println(fieldName +":"+fieldValue);
    
                }
    
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                JDBCTools.close(rs, ps, conn);
            }
    
        }

    转 : https://blog.csdn.net/YL1214012127/article/details/48299785

  • 相关阅读:
    超级变态之access查询
    计算机安全病毒问题汇集(转自华军)
    Avast I Love You
    Windows2003 3389端口修改
    希捷 250G 7200.10 8M(串口/5年盒)(买硬盘了~~~)
    DataTable 中Remove方法的使用
    我的主板(p5pl2e)
    冼东妹(为奥运冠军名字作诗)
    李彦宏告诫年轻人:向前看两年
    郭文珺(为奥运冠军名字作诗)
  • 原文地址:https://www.cnblogs.com/fps2tao/p/12023937.html
Copyright © 2011-2022 走看看