`

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基础学习44.pdf

    为了在IT行业中找到一份工作,熟练掌握Java基础知识至关重要。这份“Java基础学习44.pdf”资源旨在帮助初学者快速掌握Java的核心概念,特别是与数据库交互的JDBC技术。 首先,JDBC(Java Database Connectivity)是...

    Java语言基础下载

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

    Java基础学习43.pdf

    在Java基础学习中,理解并掌握反射是非常关键的一步,因为这不仅可以帮助你深入理解Java的内在机制,还能提升你在实际开发中的灵活性。 反射的概述:Java反射机制是指在运行状态中,程序可以获取到关于类、接口、...

    Java Database Programming with JDBC

    总的来说,《Java Database Programming with JDBC》是一本全面介绍Java数据库编程的书籍,涵盖了从基础的SQL语法到高级的JDBC应用,对于希望使用Java进行数据库开发的程序员来说,是一份宝贵的资源。

    jdbc的Java数据库编程

    JDBC的核心价值在于其跨平台性、标准化以及丰富的功能集,这使得Java成为构建企业级应用的首选语言之一。 #### 1. JDBC概览 **定义与结构** JDBC允许Java应用程序连接到多种数据库管理系统(如Oracle、MySQL、...

    java调用oracle存储过程实现增删改查

    在Java编程中,调用Oracle数据库的存储过程是常见的数据操作任务,特别是在处理复杂的业务逻辑或需要高效批量处理数据时。存储过程是预编译的SQL语句集合,可以提高性能,减少网络流量,并增强安全性。本文将详细...

    java数据库开发实例教案

    在Java编程语言中,数据库开发是一项关键技能,它允许开发者创建、读取、更新和删除存储在...通过这些实例,你不仅可以学习到JDBC的基本用法,还能了解到最佳实践和性能优化策略,为你的数据库开发之旅打下坚实的基础。

    弘扬教育培训的JAVA连数据库课件

    - ResultSetMetaData:用于获取ResultSet对象中的列信息,如列名、数据类型等。 - Transaction管理:在数据库操作中,事务是确保数据一致性的重要机制,Java中的Connection对象提供了commit()和rollback()方法来...

    the practice for java

    1. Java基础知识: - 类与对象:Java是面向对象的语言,程序由类定义,通过实例化对象来执行任务。理解封装、继承和多态是掌握Java的基础。 - 变量与数据类型:Java有基本数据类型(如int、double、char)和引用...

    疯狂JAVA讲义

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

    java之JDBC全面总结

    1. `java.sql`包提供了基础的数据库编程服务,如创建连接、执行SQL语句、预编译SQL语句以及处理结果集等。以下是一些关键的接口和类: - `java.sql.Connection`:代表与数据库的会话,可以获取元数据信息,执行SQL...

    java连接数据库

    在Java编程语言中,连接数据库是一项基础且至关重要的任务,特别是在开发数据驱动的应用程序时。本文将深入探讨如何使用Java连接到数据库,以实现数据的读取、写入和更新。我们将围绕标题“java连接数据库”展开,...

    JAVA数据库编程实例随书源码

    1. 第1章可能涉及Java数据库连接(JDBC)的基础知识,包括加载驱动、建立数据库连接、创建Statement对象以及执行SQL的DDL(Data Definition Language)语句,如创建表。 2. 第2章可能讲解如何执行DML(Data ...

    Java与数据库

    1. JDBC基础: JDBC是一个接口,由Sun Microsystems开发并定义,现在属于Oracle公司的一部分。它为开发者提供了与数据库交互的一组规范,包括建立连接、执行SQL语句、处理结果集等。JDBC API包含多个接口和类,如`...

    JDBC与Java数据库程序设计

    1. **JDBC基础** - JDBC API由一系列接口和类组成,如`Connection`、`Statement`、`PreparedStatement`和`ResultSet`等。 - `Connection`接口代表了数据库的会话,用于建立应用程序和数据库之间的通道。 - `...

    Java语言SQL接口—JDBC编程技术

    **JDBC基础** 1. **JDBC驱动**:JDBC工作在Java应用程序和数据库之间,需要依赖特定的JDBC驱动。根据实现方式,JDBC驱动分为四种类型:Type 1(JDBC-ODBC桥)、Type 2(部分Java驱动)、Type 3(纯Java网络驱动)和...

    java通讯录系统代码

    总结来说,这个Java通讯录系统展示了基础的数据库操作和GUI编程技巧。尽管代码简单,但已经涵盖了数据库连接、查询、数据展示和基本的用户交互。对于初学者来说,这是一个很好的学习实例,能够理解Java如何与数据库...

    Java数据库技术异常数据流PPT教案学习.pptx

    Java数据库技术异常数据流PPT教案主要讲解了Java与数据库交互的基础知识,特别是JDBC(Java Database Connectivity)的使用。JDBC是Sun公司为Java程序员提供的一种标准接口,用于连接和操作各种类型的数据库,实现...

Global site tag (gtag.js) - Google Analytics