`

JAVA基础 之 ResultSetMetaData

    博客分类:
  • java
阅读更多

概述:

    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("数据库操作出现异常");
		}
	}

}

 

结果截图:



 

相关连接:

《Java基础 之 ResultSet》

《JAVA基础 之 JDBC事务》

 

声明:

1.原创文章,转载请标明并加本文连接。

2.文章反映个人愚见,如有异议欢迎讨论指正

  • 大小: 66.2 KB
2
2
分享到:
评论
5 楼 佐手_ 2015-08-12  
基础不打好,框架用再熟都是徒劳,换个框架立马傻了,重新学习的时间也势必要比基础扎实的人久。
4 楼 zcqshine 2013-03-05  
好吧学习了...java基础的东西多看看还是挺好的
3 楼 snkcxy 2013-03-01  
ujjboy 写道
太基础了。

呵呵 对于一个类来说就是这些基础的api ,这个类官方api只有21个方法
而我使用的这几个是最常用最实用的几个,通过这个可以写出通用型的遍历方法,做一个简单的sql语句查询小程序都是没问题的。
而且我写这些的目的就是 回顾基础 抛砖引玉
真是不明白 这篇文章写的很简单  但是能扩展出很多应用和思路呀 不知道为什么这么不受欢迎~
可能是大牛都太多了 不屑这些吧~
2 楼 ujjboy 2013-03-01  
太基础了。
1 楼 snkcxy 2013-03-01  
这文章 挺简单实用的呀~ 但是不是很受欢迎内~

相关推荐

    Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData

    Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData、查询结果集映射Map与ListMap 1.数据类型 2.封装通用增删改 2.1.封装JDBCUtil 2.2.封装Dao通用增删改 2.3.测试 3.ResultSet...

    java读取table列名

    java使用ResultSetMetaData 读取table的列名

    Java语言基础下载

    第四章: Java语法基础 47 学习目标 47 基本语法元素 48 Java关键字 49 基本Java数据类型 50 变量声明和赋值 52 引用(Reference)类型 52 存储器分配和布局 53 this引用 55 Java编码约定 56 运算符的优先级 58 升级...

    疯狂JAVA讲义

    学生提问:为什么有栈内存和堆内存之分? 93 4.6.2 基本类型数组的初始化 95 4.6.3 引用类型数组的初始化 96 4.6.4 没有多维数组 99 学生提问:我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样...

    java万能DAO

    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, ...

    java界面程序代码

    ResultSetMetaData dbmd = rs.getMetaData();//得到记录集的元数据,建立表头数组 title = new String[dbmd.getColumnCount()]; for(int i=1;i ();i++) title[i-1] = dbmd.getColumnName(i); dtm = new...

    数据库工具类DatabaseUtil.java

    * 可滚动的 Statement 不能执行 SELECT MAX(ID) 之类的查询语句(SQLServer 2000) * * @param sql * 需要执行的 SQL * @return 记录总数 */ public int getAllCount(String sql) { try { Statement ...

    java程序是怎么操作数据库的,可以以常用据库为例,求详细解答,最好能举例。

    java 实现连接sql server 20002007-12-16 13:28:00.0 第一种:通过ODBC连接数据库 JAVA语言的跨平台的工作能力(Write Once ,Run Anywhere)、优秀的图像处理能力(我相信现在没有那种语言可以超过JAVA在网络上的...

    java通讯录系统代码

    非常简单易懂的通讯录系统,代码不精深,但很容易懂public class Address extends JFrame{ Connection con=null; Statement st=null; ResultSet rs=null;... ResultSetMetaData rm=rs.getMetaData();

    Java数据库编程宝典3

    第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的方法

    获得结果集的字段名称_ResultSet的属性要调用ResultSetMetaData的方法

    java数据库表的调用

    利用JScrollPane JTable Vector AbstractTableModel ResultSetMetaData将数据库中表的内容显示到窗口中,代码已经测试成功!

    JAVA连接ORACLE数据库方法及测试

    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通用操作数据库方法类总结

    在项目中用到myBatis作为orm框架,与spring结合,通常的... import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; i

    Java_JDBC由浅入深

    比较实用,基础 目录 第一节 整理目的 3 第二节 jdbc的概念 3 2.1概念 3 2.2 Jdbc与应用程序的关系 3 2.3 数据库的连接步骤 4 2.4 Quick Start 4 第三节 如何与数据库建立连接 6 3.1 注册驱动 6 3.2 建立数据库的...

    iBatis-设置缓存模式-Java源码(下载)

    import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import ...

    Java数据库编程宝典2

    第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语句 ...

    Java数据库编程宝典4

    第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笔记 JDBC笔记

    一、概述: JDBC从物理结构上说就是Java语言访问数据库的一套接口集合。从本质上来说就是调用者(程序员)和实现者(数据库...java.sql.ResultSetMetaData 可用于获取关于ResultSet对象中列的类型和属性信息的对象。

    Java数据库编程宝典1

    第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语句 ...

Global site tag (gtag.js) - Google Analytics