Java_jdbc 基础笔记之十 数据库连接 (ResultSetMetaData 类)
2023-09-11 14:19:38 时间
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
相关文章
- [android]MonkeyRunner“java.net.SocketException: Broken pipe”错误解决办法
- Jmeter里的全能java测试sampler - Java request
- JAVA-数据库之查询记录
- JAVA-数据库之JDBC连接MySQL数据库
- java基础知识回顾之java Thread类学习(九)--wait和notify区别
- HTML、sqlserver数据库和java前七章节的复习(一)
- java错误:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Bu
- java泛型【收藏】
- JAVA学习(五):Java面向对象编程基础
- Java实现 LeetCode 440 字典序的第K小数字
- java实现第九届蓝桥杯全排列
- Java实现蓝桥杯日期问题
- 2013年7月14日-Java连接Oracle数据库
- Java容器使用总结
- 【JAVA】毕向东Java基础视频教程-笔记
- Java操作Redis数据库方法(简单)
- Java学习路线-41:数据库及SQL/MySQL基础
- Kotlin (Java) 获取 mysql 数据库的所有表,表的所有字段,注释,字段类型
- 完整java开发中JDBC连接数据库代码和步骤
- 改进架构,实现动态数据源,减少java维护
- Java集合类汇总记录-- apache.commons4(TreeList)
- ElastaticSearch--- es常用的java api
- java并发:Condition的应用
- java.lang.OutOfMemoryError: Java heap space
- Java连接Mysql报错
- 【java】Java 中泛型的实现原理
- 【java】Java 封装
- JAVA开发讲义(二)-Java程序设计之数据之谜一