概述:
1.ResultSetMetaData包含了查询后的结果集的相关信息
2.通过rs.getMetaData();来创建
3.可以写出通用型遍历结果集程序(不知道结果集结构情况下)
步骤:
1.先获得结果集字段或者字段别名
2.遍历封装结果集(可以根据字段自行选择封装哪些数据)
package com.cxy.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author cxy */ public class ResultSetMetaDataTest { public static void main(String[] args) throws Exception { Class.forName("com.mysql.jdbc.Driver"); try ( Connection con=DriverManager.getConnection("jdbc:mysql://localhost/dbtest", "root", "root"); PreparedStatement pstmt=con.prepareStatement("select id_ as 主键,name_ as 姓名,sex as 性别 from t_student", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs=pstmt.executeQuery(); ) { ResultSetMetaData rsm=rs.getMetaData(); System.out.println("t_student表有几个字段?"+rsm.getColumnCount()); System.out.println("第一个字段所在表?"+rsm.getTableName(1)); System.out.println("========================"); //遍历一个不知道结构的表 System.out.println("通用型遍历结果集:"); System.out.println("1.获得所有的列名"); int colNum=rsm.getColumnCount(); String[] colName=new String[colNum]; //字段名 String[] colLabel=new String[colNum]; //别名 for(int i=1;i<=colNum;i++) { colName[i-1]=rsm.getColumnName(i); colLabel[i-1]=rsm.getColumnLabel(i); } System.out.println(Arrays.asList(colName)); System.out.println(Arrays.asList(colLabel)); System.out.println("------------------------"); System.out.println("2.遍历并封装"); //把结果集封装成List<Map<String,String>> List<Map<String,String>> dbData=new ArrayList<>(); while(rs.next()) { Map<String,String> one = new HashMap<String, String>(); for(int i=1;i<=colNum;i++) { one.put(colLabel[i-1], rs.getString(i)); } dbData.add(one); } //System.out.println(dbData); for(Map<String,String> one : dbData) { System.out.println(one); } }catch(SQLException e) { System.out.println("数据库操作出现异常"); } } }
结果截图:
相关连接:
声明:
1.原创文章,转载请标明并加本文连接。
2.文章反映个人愚见,如有异议欢迎讨论指正
相关推荐
Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData、查询结果集映射Map与ListMap 1.数据类型 2.封装通用增删改 2.1.封装JDBCUtil 2.2.封装Dao通用增删改 2.3.测试 3.ResultSet...
java使用ResultSetMetaData 读取table的列名
第四章: Java语法基础 47 学习目标 47 基本语法元素 48 Java关键字 49 基本Java数据类型 50 变量声明和赋值 52 引用(Reference)类型 52 存储器分配和布局 53 this引用 55 Java编码约定 56 运算符的优先级 58 升级...
学生提问:为什么有栈内存和堆内存之分? 93 4.6.2 基本类型数组的初始化 95 4.6.3 引用类型数组的初始化 96 4.6.4 没有多维数组 99 学生提问:我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样...
import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * 通用DAO类 * @author parddu * @version Sep 29, ...
ResultSetMetaData dbmd = rs.getMetaData();//得到记录集的元数据,建立表头数组 title = new String[dbmd.getColumnCount()]; for(int i=1;i ();i++) title[i-1] = dbmd.getColumnName(i); dtm = new...
* 可滚动的 Statement 不能执行 SELECT MAX(ID) 之类的查询语句(SQLServer 2000) * * @param sql * 需要执行的 SQL * @return 记录总数 */ public int getAllCount(String sql) { try { Statement ...
java 实现连接sql server 20002007-12-16 13:28:00.0 第一种:通过ODBC连接数据库 JAVA语言的跨平台的工作能力(Write Once ,Run Anywhere)、优秀的图像处理能力(我相信现在没有那种语言可以超过JAVA在网络上的...
非常简单易懂的通讯录系统,代码不精深,但很容易懂public class Address extends JFrame{ Connection con=null; Statement st=null; ResultSet rs=null;... ResultSetMetaData rm=rs.getMetaData();
第3章 SQL基础 3.1 SQL语言 3.2 SQL数据类型 3.3 数据定义语言 3.3.1 创建、取消、更改数据库和表 3.3.2 创建、更改和取消视图 3.4 数据处理语言 3.4.1 INSERT语句 3.4.2 UPDATE语句 3.4.3 DELETE语句 ...
获得结果集的字段名称_ResultSet的属性要调用ResultSetMetaData的方法
利用JScrollPane JTable Vector AbstractTableModel ResultSetMetaData将数据库中表的内容显示到窗口中,代码已经测试成功!
import java.sql.*; public class Bc { // 声明数据库地址及驱动 private Connection conn = null; private String url = "jdbc:oracle:thin:@localhost:1521:ORCL"; private String driver = "oracle.jdbc....
在项目中用到myBatis作为orm框架,与spring结合,通常的... import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; i
比较实用,基础 目录 第一节 整理目的 3 第二节 jdbc的概念 3 2.1概念 3 2.2 Jdbc与应用程序的关系 3 2.3 数据库的连接步骤 4 2.4 Quick Start 4 第三节 如何与数据库建立连接 6 3.1 注册驱动 6 3.2 建立数据库的...
import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import ...
第3章 SQL基础 3.1 SQL语言 3.2 SQL数据类型 3.3 数据定义语言 3.3.1 创建、取消、更改数据库和表 3.3.2 创建、更改和取消视图 3.4 数据处理语言 3.4.1 INSERT语句 3.4.2 UPDATE语句 3.4.3 DELETE语句 ...
第3章 SQL基础 3.1 SQL语言 3.2 SQL数据类型 3.3 数据定义语言 3.3.1 创建、取消、更改数据库和表 3.3.2 创建、更改和取消视图 3.4 数据处理语言 3.4.1 INSERT语句 3.4.2 UPDATE语句 3.4.3 DELETE语句 ...
一、概述: JDBC从物理结构上说就是Java语言访问数据库的一套接口集合。从本质上来说就是调用者(程序员)和实现者(数据库...java.sql.ResultSetMetaData 可用于获取关于ResultSet对象中列的类型和属性信息的对象。
第3章 SQL基础 3.1 SQL语言 3.2 SQL数据类型 3.3 数据定义语言 3.3.1 创建、取消、更改数据库和表 3.3.2 创建、更改和取消视图 3.4 数据处理语言 3.4.1 INSERT语句 3.4.2 UPDATE语句 3.4.3 DELETE语句 ...