JDBC系列教程之十三:ResultSetMetaData

2013-08-31|来源: 领悟书生

ResultSetMetaData

l  ResultSetMetaData meta = rs.getMetaData();

l  通过ResultSetMetaData可以获得结果有几列、各列名、各列别名、各列类型等。

l  可以将ResultSet放入Map(key:列名value:列值)。

ResultSetMetaDataTest .java(利用结果集元数据将查询结果封装为map)

package com.hyneng.jdbc;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

/**

* 2010-10-08

* @author HuangYineng

*/

public class ResultSetMetaDataTest {

   public static void main(String[] args) throws  SQLException {

      List<Map<String, Object>>  datas = read("select  id, name as n from user where id < 5");

      System.out.println(datas);

   }

   static List<Map<String,  Object>> read(String sql) throws SQLException {

      Connection conn = null;

      PreparedStatement ps = null;

      ResultSet rs = null;

      try {

          conn = JdbcUtils.getConnection();

          ps = conn.prepareStatement(sql);

          rs = ps.executeQuery();

          ResultSetMetaData rsmd =  rs.getMetaData();

          int count = rsmd.getColumnCount();

          String[] colNames = new String[count];

          for (int i = 1; i <= count; i++) {

             // System.out.print(rsmd.getColumnClassName(i) + "\t");

             // System.out.print(rsmd.getColumnName(i) + "\t");

             // System.out.println(rsmd.getColumnLabel(i));

             colNames[i - 1] =  rsmd.getColumnLabel(i);

          }

          List<Map<String,  Object>> datas = new ArrayList<Map<String, Object>>();

          while (rs.next()) {

             Map<String, Object> data =  new HashMap<String, Object>();

             for (int i = 0; i < colNames.length; i++) {

                 data.put(colNames[i],  rs.getObject(colNames[i]));

             }

             datas.add(data);

          }

          return datas;

      } finally {

          JdbcUtils.free(rs, ps,  conn);

      }

   }

}


本文链接:JDBC系列教程之十三:ResultSetMetaData,转自请注明:http://www.656463.com/article/817

相关问答

更多

电脑基础.实例.上机系列教程

针对这门课程的附带,当然是教程盘啦

Painter从入门到精通系列教学视频教程

Painter从入门到精通系列教学视频教程 http://www.shouhui119.com/shouhuishipinjiaocheng/shouhuiruanjian/137.html

求破解脱壳系列教程

我教你吧!要的话就加

oracle和jdbc的视频教程哪个讲的好

你说的这两个都不是同一类东西。 学习数据库,如果重在快速入门应用:选择MYSQL。它是开源的而且网上教程很多 如果是想学习深入的话,一边看数据库概论一边学习ORACLE操作是很好的方法 如果再想深入,那么就可以在学习好ORACLE基础上学习它的存储过程 触发器和PLSQL编程 JDBC是JAVA连接各种数据库的API不是数据库

oracle和jdbc的视频教程哪个讲的好

你说的这两个都不是同一类东西。 学习数据库,如果重在快速入门应用:选择MYSQL。它是开源的而且网上教程很多 如果是想学习深入的话,一边看数据库概论一边学习ORACLE操作是很好的方法 如果再想深入,那么就可以在学习好ORACLE基础上学习它的存储过程 触发器和PLSQL编程 JDBC是JAVA连接各种数据库的API不是数据库

专题教程

JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
Gson教程
快速了解 jdk8 新特征

相关文章

更多

最近更新

更多