java_jdbc_利用结果集元数据将查询结果封装为map_MetaData
package cn.itcast.batch; import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import cn.itcast.JdbcUtils; public class ResultSetMetaData { public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
List<Map<String, Object>> list = read2("select username,password from t_user where id <5 ");
System.out.println(list);
} // 一行数据
public static 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(); java.sql.ResultSetMetaData rsmd = rs.getMetaData(); int count = rsmd.getColumnCount();
String[] colNames = new String[count]; for (int i = 1; i <= count; i++) {
// System.out.println(rsmd.getColumnClassName(i) + " "
// + rsmd.getColumnName(i) + " " + rsmd.getColumnLabel(i));
colNames[i - 1] = rsmd.getColumnName(i); }
Map<String, Object> data = null;
if (rs.next()) {
data = new HashMap<String, Object>();
for (int i = 0; i < colNames.length; i++) {
data.put(colNames[i], rs.getObject(colNames[i]));
}
}
return data;
} finally {
JdbcUtils.free(rs, ps, conn);
}
} // 多行行数据
public static List<Map<String, Object>> read2(String sql)
throws SQLException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery(); java.sql.ResultSetMetaData rsmd = rs.getMetaData(); int count = rsmd.getColumnCount();
String[] colNames = new String[count]; for (int i = 1; i <= count; i++) {
// System.out.println(rsmd.getColumnClassName(i) + " "
// + rsmd.getColumnName(i) + " " + rsmd.getColumnLabel(i));
colNames[i - 1] = rsmd.getColumnName(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);
}
}
}
java_jdbc_利用结果集元数据将查询结果封装为map_MetaData的更多相关文章
- 利用结果集元数据将查询结果封装为map
package it.cast.jdbc; import java.sql.Connection; import java.sql.ParameterMetaData; import java.sql ...
- OpenJDK源码研究笔记(十二):JDBC中的元数据,数据库元数据(DatabaseMetaData),参数元数据(ParameterMetaData),结果集元数据(ResultSetMetaDa
元数据最本质.最抽象的定义为:data about data (关于数据的数据).它是一种广泛存在的现象,在许多领域有其具体的定义和应用. JDBC中的元数据,有数据库元数据(DatabaseMeta ...
- oracle学习笔记(八)——结果集元数据ResultSetMetaData以及ResultSet转为对应的实体类框架
介绍 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象,在持久框层框架(如:mybatis, hibernate)中被广泛的应用. 常用方法 int getColumnCount() ...
- JDBC中的元数据——3.结果集元数据
package metadata; import java.sql.Connection; import java.sql.ParameterMetaData; import java.sql.Pre ...
- 利用kibana插件对Elasticsearch查询
利用kibana插件对Elasticsearch查询 Elasticsearch是功能非常强大的搜索引擎,使用它的目的就是为了快速的查询到需要的数据. 查询分类: 基本查询:使用Elasticsear ...
- Python与数据库[2] -> 关系对象映射/ORM[5] -> 利用 sqlalchemy 实现关系表查询功能
利用 sqlalchemy 实现关系表查询功能 下面的例子将完成一个通过关系表进行查询的功能,示例中的数据表均在MySQL中建立,建立过程可以使用 SQL 命令或编写 Python 适配器完成. 示例 ...
- PXC集群信息查询
目录 PXC集群信息查询 pxc流量控制 PXC节点状态 PXC集群状态 节点与集群的相关信息 PXC集群事务相关信息 PXC集群信息查询 show status like "%wsrep% ...
- MyBatis Plus 将查询结果封装到指定实体
MyBatis Plus 将查询结果封装到指定实体 思路 自定义方法,使用Wrapper,自定义映射结果集 Mapper接口 package com.mozq.boot.mpsand01.dao; i ...
- hibernate将本地SQL查询结果封装成对象
hibernate将本地SQL查询结果封装成对象 不知道大家有没有碰过这种情况,迫于很多情况只能用native SQL来查询(如:复杂统计等),然而使用native查询后,结果会被放到object里, ...
随机推荐
- CPU affinity 进程和线程的亲缘性
设置Processor Affinity 作用: 1.进程和线程的亲缘性(affinity),使进程或线程在指定的CPU(核)上运行.(比如程序A,在第4个核心上运行) 2.设置进程 或者 线程, 使 ...
- mycat分布式mysql中间件(数据库切分概述)[转]
mysql数据库切分 前言 通 过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制,一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时 候,我们还是会面临到扩展 ...
- MyEclipse 下用link 方式安装插件
N年之前,也是Java出身,后来转DBA,Java 就忘的差不多了. 最近计划好好研究下Python,还是选用MyEclipse 这个IDE了,多年没敲代码,很多东西都忘记了,做点笔记,备用. M ...
- POJ3281 Dining 最大流
题意:有f种菜,d种饮品,每个牛有喜欢的一些菜和饮品,每种菜只能被选一次,饮品一样,问最多能使多少头牛享受自己喜欢的饮品和菜 分析:建边的时候,把牛拆成两个点,出和入 1,源点向每种菜流量为1 2,每 ...
- [娱乐]GameMaker绘制参数方程的图像
今天,我翻了旧物,硬着头皮看了这源码.突然恍然大悟,这岂不就是当年学的参数方程! 目前,最早开始教授参数方程实在高三时,并作为一门选修课程,简化了求解圆锥曲线方程的难度,在高考中也很容易拿分,考试过后 ...
- js基础第二天
函数:是由事件驱动的或者当它被调用时执行的可以重复使用的代码块. 函数声明: 1. 自定义函数(常用) var num=10; function fun() { alert("我是自定义函数 ...
- #pragma warning (default : n)
参考链接:http://www.cnblogs.com/JCSU/articles/1996483.html 在VC2013中编译以下win32 C++ 控制台程序,会产生2个告警warnings # ...
- [原][Android]All WebView methods must be called on the same thread.
问题 webView调用JS出错. class TestJS { ...... public TestJS(){ } ...
- windows安装python开发环境
1.下载python 官网下载最新版python python-2.7.5.amd64.msi http://vdisk.weibo.com/s/Cd8pPaw56OWbR 2.下载PyCharm 官 ...
- cocos2d-x在NDK r9下的编译问题
:69: error: format not a string literal andno format arguments [-Werror=format-security]cc1plus.exe: ...