- 浏览: 982995 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
ResultSetMetaData能够通过ResultSet分析出结果集的元素。
ResultSetMetaData meta = rs.getMetaData(); 通过ResultSetMetaData可以获得结果有几列、各列名、各列别名、各列类型等。 可以将ResultSet放入Map(key:列名 value:列值)。 用反射ResultSetMetaData将查询结果读入对象中(简单的O/RMapping) 1)让SQL语句中列别名和要读入的对象属性名一样; 2)通过ResultSetMetaData获得结果列数和列别名; 3)通过反射将对象的所有setXxx方法找到; 4)将3)找到的方法setXxx和2)找到的列别名进行匹配(即方法中的xxx于列别名相等); 5)由上一步找到的方法和列别名对应关系进行赋值 Method.invoke(obj, rs.getObject(columnAliasName));
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>();
//data中的Key为列的名称,Value是些列的值
for (int i = 0; i < colNames.length; i++) {
data.put(colNames[i], rs.getObject(colNames[i]));
//将列的名称与列的值放到map当中去,每一行map中的元素大小就是列的数目
}
datas.add(data);//将此行放到List当中去。 }
return datas;
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
}
发表评论
-
高级 DAO 编程 学习编译更好的 DAO 的技巧
2009-04-27 20:09 1608高级 DAO 编程学习编译 ... -
使用Spring的SimpleJdbcTemplate完成DAO操作
2009-04-24 09:35 10095SimpleJdbcTemplate内部包含了一个Name ... -
使用Spring的NamedParameterJdbcTemplate完成DAO操作
2009-04-24 09:18 30744NamedParameterJdbcTemplate内部包含了 ... -
使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC
2009-04-23 16:55 10671先道要加上两个包:Spring2.5下面的: spring.j ... -
策略设计模式_构建公共通用的Dao
2009-04-23 09:09 1510核心代码: Connection的工具类:详见JDBC数据库 ... -
模板设计模式_构建公共通用的Dao
2009-04-23 09:02 1290核心代码: Connection的工具类:详见:JDBC数据 ... -
使用反射实现ORM
2009-04-20 22:55 1406首先Bean在符合JavaBean的要求,即有一个无参的构造方 ... -
使用反射技术调用对象的方法,得到属性,方法等信息
2009-04-20 22:55 2301package com.mengya.test; im ... -
使用反射技术构造对象
2009-04-20 22:54 1567public class Bean { privat ... -
用JDBC访问二进制类型的数据
2009-04-20 13:08 1572JDBC操作二进制类型数据(如图片或压缩包)也是通过IO字节流 ... -
用JDBC访问大段文本数据
2009-04-20 13:07 1359JDBC操作大的文本数据是通过IO字符流操作 publ ... -
我的JDBC实例
2009-04-20 13:06 20641, 首先在配置文件(system.properties)中 ... -
了解事务的隔离级别
2009-04-20 13:05 1176隔离级别多线程并发读取数据时的正确性 用法: connne ... -
可滚动结果集与分页技术
2009-04-20 13:04 1483可滚动的结果集 Statement st = ... -
可更新和对更新敏感的结果集
2009-04-20 13:04 1585可更新的结果集(说明这些都是JDBC特殊的用法,有些数据库可能 ... -
SQL注入,PreparedStatement和Statement
2009-04-20 13:01 1971在SQL中包含特殊字符或SQL的关键字(如:' or 1 or ... -
ParameterMetaData的使用
2009-04-20 12:59 2593ParameterMetaData pmd = prepa ... -
JDBC自动获取数据库自动生成的主键
2009-04-20 12:55 3014PreparedStatement.getGeneratedK ... -
JDBC工具类实例
2009-04-20 12:53 1444System.properties配置文件(放在src下面) ... -
JDBC事务保存点,即事部分回滚
2009-04-20 12:52 4845JDBC中的事务保存点,即事务发生回滚的时候,回滚到保存点那里 ...
相关推荐
Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData、查询结果集映射Map与ListMap 1.数据类型 2.封装通用增删改 2.1.封装JDBCUtil 2.2.封装Dao通用增删改 2.3.测试 3.ResultSet...
通过调用ResultSet对象的getMetaData()方法,可以获取ResultSetMetaData对象,然后使用该对象的方法来获取结果集的字段名称和其他信息。 下面是一些常用的ResultSetMetaData方法: 1. getColumnCount():返回...
在项目中用到myBatis作为orm框架,与spring结合,通常的... import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; i
java使用ResultSetMetaData 读取table的列名
10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性需求 11.3 设计数据库 11.3.1 处理会员登录 11.3.2 会员注册 11.3.3 数据...
10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性需求 11.3 设计数据库 11.3.1 处理会员登录 11.3.2 会员注册 11.3.3 数据...
10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性需求 11.3 设计数据库 11.3.1 处理会员登录 11.3.2 会员注册 11.3.3 数据...
10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性需求 11.3 设计数据库 11.3.1 处理会员登录 11.3.2 会员注册 11.3.3 数据...
12. 使用ResultSetMetaData对象可以获取查询结果的元数据,例如列名、数据类型等。 13. 在JSP中,使用try-catch语句可以捕获异常,例如数据库连接异常。 14. 使用finally语句可以确保资源的释放,例如关闭数据库...
迁移到具有更好结构的 。基准测试比较不同orm解决方案与simpleflatmapper的基准我们运行... SFM Static使用预定义的列列表SFM Dynamic将使用ResultSetMetadata SFM Dynamic NoASM将使用ResultSetMetadata但不使用asm
旨在方便用户将数据库的内容转化为Vector、ArrayList容器的操作过程,此类中提供了多种方法从而简化了对ResultSet结果集的转化成本,结合系统提供的ResultSetMetaData类实现了通过结果集查询表列数目、名称、属性...
学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...
15.1.1 ResultSetMetaData演示 88 15.1.2解决多行记录的问题 89 15.1.3 Map结果集的封装 90 15.2 将结果集封装为对象 91 15.2.1 user表POJO的编写 91 15.2.2 Bean结果集的封装 92 15.3 将结果集封装为List 94 15.4 ...
表字段描述依赖包 ormlite 之ResultSetMetaData
在此文档中,我们将介绍如何使用 Spring jdbcTemplate 调用 Oracle 存储过程返回 List 集合。 Oracle 存储过程 ------------- 在 Oracle 数据库中,存储过程是一种可以被调用执行的数据库对象。存储过程可以实现...
### 任务 ## JDBC: Backward flip 创建一个 Java 程序,在命令行上接受连接参数和数据库名称,并将数据库结构输出为 EER 图和关系模型(在合适格式的文件中,例如 PNG为 EER 和 TXT 为 RM) 使用 ResultSetMetaData ...
卡里克/霍恩沃特创建一个 Java 程序,该程序在命令行上接受连接参数和数据库名称,并将数据库的结构输出为 EER 图和关系模型(在合适格式的文件中,例如 EER 为 PNG,RM 为 TXT) 为此使用 ResultSetMetaData 接口,...
获得结果集的字段名称,ResultSet的属性要调用ResultSetMetaData的方法
ResultSetMetaData rsmd = results.getMetaData(); int numCols = rsmd.getColumnCount(); int i, rowcount = 0; // 获取列头信息 for (i = 1; i ; i++) { if (i > 1) buf.append(","); buf.append(rsmd....
包括Oracle,mysql驱动,各种驱动池、dbutils、ResultSetMetaData配置对象的属性等