第三十章 利用结果集元数据将查询结果封装为map

转载 2012年03月22日 22:00:45


将查询的结果ResultSet封装成List<Map<String,object>>返回


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;

import cn.itcast.jdbc.JdbcUtils;


public class ResultSetMetaDatatest {
	public static void main(String[] args) throws SQLException{
		String sql = "select * from user where id <3";
		List<Map<String,Object>> datas = ResultSetMetaDatatest.read(sql, null);
		System.out.println(datas);
	}
	
	public static List<Map<String, Object>> read(String sql, Object[] params) 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(); //ResultSetMetaData元数据
			int count = rsmd.getColumnCount(); //rs的行数
			String[] columnNames = new String[count];
			for(int i = 1; i<=count; i++){
				columnNames[i-1] = rsmd.getColumnName(i); // 把每行的名字"name" "birthday"等取出来
			}
			List<Map<String,Object>> datas = new ArrayList<Map<String,Object>>(); //封装数据的List和Map
			while(rs.next()){
				Map<String,Object> data = new HashMap<String, Object>();
				for(int i=1; i<columnNames.length; i++){
					data.put(columnNames[i], rs.getObject(columnNames[i])); //根据name取出数据并存到map中
				}
				datas.add(data);  //map存到list中
				
			}
			return datas;
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			JdbcUtils.free(rs, ps, conn);
		}
		return null;
		
	}
}


Mybatis 连表查询,返回结果封装为Map

在SSM的项目中,数据的持久化操作都使用Mybatis实现,Mybatis抢的Mapper配置文件,可以让我们灵活得编写SQL语句。在我们需要进行连表查询时,需要传入的参数可能不止一个,这个时候我们将...
  • vili_sky
  • vili_sky
  • 2017年06月15日 15:26
  • 5842

hibernate查询结果映射到实体和map的方法

1.sql查询封装对象,配置映射,把查询出来的数据封装到实体当中: 方法一:addEntity(A.class)设定查询出的结果映射到相应的实体中,但是这个实体必须在hibernate的映射文件中配...
  • menghuanzhiming
  • menghuanzhiming
  • 2017年06月22日 15:55
  • 2142

MyBatis查询结果集映射到JavaBean原理浅谈

MyBatis对JDBC做了很好的封装,其中一个吸引人的地方就是能够对从数据库内查询出来的表的记录集映射生成一系列JavaBean,供应用程序使用。今天跟着源码一层一层探讨一下MyBatis把数据库记...
  • u011420057
  • u011420057
  • 2017年05月23日 20:53
  • 1778

利用结果集元数据将查询对象封装成map

@WebServlet("/ResultSetMetaDataTest") public class ResultSetMetaDataTest extends HttpServlet { p...
  • BuildingJiang
  • BuildingJiang
  • 2017年03月23日 13:45
  • 225

java_jdbc_利用结果集元数据将查询结果封装为map_MetaData

package cn.itcast.batch; import java.sql.Connection; import java.sql.ParameterMetaData; import java...
  • u011641049
  • u011641049
  • 2014年01月18日 19:33
  • 486

JDBC之用元数据将结果集封装为List对象

JDBC之用元数据将结果集封装为List对象 JDBC的方法里面有着一套对数据库元数据操作的API.通过这些API我们可以获得数据库以及驱动等信息,也可以获得结果集的一些信息.而有些信息平时用的...
  • konglongaa
  • konglongaa
  • 2016年09月01日 20:17
  • 529

JDBC-ResultSet之滚动结果集-光标与元数据

ResultSet表示结果集,它是一个二维的表格!ResultSet内部维护一个行光标(游标),ResultSet提供了一系列的方法来移动游标:   void beforeFirst():把光标放到...
  • hunter_wyh
  • hunter_wyh
  • 2015年10月28日 22:57
  • 253

JDBC中如何通过结果集获取元数据

在查询一个未知的表时,我们不知道表中有多少列, 这些列都是什么类型,可以通过查询元数据,查询他的列数、列名、列的类型。 元数据可以理解为是一个事物进行分类进行查询的作用, 列:我们查看书籍的...
  • Coder_Hello_World
  • Coder_Hello_World
  • 2017年11月18日 21:58
  • 47

JDBC之结果集元数据、事务控制、批量执行、返回自动主键

JDBC结果集元数据ResultSetMetaData用于描述查询结果的相关信息, 其中包含列名称, 列数量, 类数据类型等.原理:使用案例:public static void main(Strin...
  • qq_27853161
  • qq_27853161
  • 2016年12月14日 16:08
  • 661

[疯狂Java]JDBC:ResultSetMetaData(结果集元数据分析)

1.
  • Lirx_Tech
  • Lirx_Tech
  • 2016年04月14日 15:57
  • 967
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第三十章 利用结果集元数据将查询结果封装为map
举报原因:
原因补充:

(最多只允许输入30个字)