- 浏览: 991533 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 1642高级 DAO 编程学习编译 ... -
使用Spring的SimpleJdbcTemplate完成DAO操作
2009-04-24 09:35 10118SimpleJdbcTemplate内部包含了一个Name ... -
使用Spring的NamedParameterJdbcTemplate完成DAO操作
2009-04-24 09:18 30814NamedParameterJdbcTemplate内部包含了 ... -
使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC
2009-04-23 16:55 10711先道要加上两个包:Spring2.5下面的: spring.j ... -
策略设计模式_构建公共通用的Dao
2009-04-23 09:09 1540核心代码: Connection的工具类:详见JDBC数据库 ... -
模板设计模式_构建公共通用的Dao
2009-04-23 09:02 1338核心代码: Connection的工具类:详见:JDBC数据 ... -
使用反射实现ORM
2009-04-20 22:55 1459首先Bean在符合JavaBean的要求,即有一个无参的构造方 ... -
使用反射技术调用对象的方法,得到属性,方法等信息
2009-04-20 22:55 2346package com.mengya.test; im ... -
使用反射技术构造对象
2009-04-20 22:54 1611public class Bean { privat ... -
用JDBC访问二进制类型的数据
2009-04-20 13:08 1603JDBC操作二进制类型数据(如图片或压缩包)也是通过IO字节流 ... -
用JDBC访问大段文本数据
2009-04-20 13:07 1396JDBC操作大的文本数据是通过IO字符流操作 publ ... -
我的JDBC实例
2009-04-20 13:06 21061, 首先在配置文件(system.properties)中 ... -
了解事务的隔离级别
2009-04-20 13:05 1206隔离级别多线程并发读取数据时的正确性 用法: connne ... -
可滚动结果集与分页技术
2009-04-20 13:04 1520可滚动的结果集 Statement st = ... -
可更新和对更新敏感的结果集
2009-04-20 13:04 1629可更新的结果集(说明这些都是JDBC特殊的用法,有些数据库可能 ... -
SQL注入,PreparedStatement和Statement
2009-04-20 13:01 2004在SQL中包含特殊字符或SQL的关键字(如:' or 1 or ... -
ParameterMetaData的使用
2009-04-20 12:59 2621ParameterMetaData pmd = prepa ... -
JDBC自动获取数据库自动生成的主键
2009-04-20 12:55 3051PreparedStatement.getGeneratedK ... -
JDBC工具类实例
2009-04-20 12:53 1481System.properties配置文件(放在src下面) ... -
JDBC事务保存点,即事部分回滚
2009-04-20 12:52 4892JDBC中的事务保存点,即事务发生回滚的时候,回滚到保存点那里 ...
相关推荐
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():返回...
在本文中,我们将深入探讨如何使用`ResultSetMetaData`来获取表的列名。 首先,要使用`ResultSetMetaData`,我们需要执行SQL查询并获取`ResultSet`。一个简单的例子是查询整个表,例如: ```java Connection conn ...
这可以通过 ResultSetMetaData 对象来实现。我们可以使用 getColumnCount() 方法来获取列数,然后使用 getColumnLabel() 方法来获取每个列的名称。 将数据写入 CSV 文件 在获取了数据库数据和元数据信息后,我们...
在实际应用中,了解并使用ResultSetMetaData可以增强对查询结果的理解,从而编写出更健壮、适应性强的代码。例如,在动态生成表格或报表时,可以根据元数据来决定列的显示格式,或者在用户界面中提供适当的输入控件...
在项目中用到myBatis作为orm框架,与spring结合,通常的... import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; i
如果要避免过多的使用 ResultSetMetadata,可以使用 addScalar() 方法指定返回值的类型,例如: sess.createSQLQuery("SELECT * FROM CATS") .addScalar("ID", Hibernate.LONG) .addScalar("NAME", Hibernate....
接着,程序使用 ResultSetMetaData 对象来获取数据的元数据,并使用 HSSFRow 和 HSSFCell 对象来将数据写入到 Excel 文件中。 在将数据写入到 Excel 文件中的过程中,程序使用了多种技术来处理不同的数据类型。例如...
Java 中使用 JTable 显示数据库数据 Java 中使用 JTable 显示数据库数据是一个...使用 Java 的 JTable 显示数据库数据需要连接到数据库,读取数据,使用 ResultSetMetaData 获取列信息,并将数据显示在 JTable 中。
在ORMlite框架中,当执行SQL查询并获取ResultSet时,可以使用ORMlite提供的工具方法来获取ResultSetMetaData。这个信息对于理解数据库表结构至关重要,比如字段名、字段类型(如整型、字符串、日期等)、字段顺序...
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 数据...
9. **结果集元数据(ResultSetMetaData)**:`ResultSetMetaData`提供关于结果集中列的信息,如列名、数据类型和列大小,有助于动态生成查询结果的处理逻辑。 10. **异常处理**:良好的异常处理策略是任何数据库...
12. 使用ResultSetMetaData对象可以获取查询结果的元数据,例如列名、数据类型等。 13. 在JSP中,使用try-catch语句可以捕获异常,例如数据库连接异常。 14. 使用finally语句可以确保资源的释放,例如关闭数据库...
- 使用`ResultSetMetaData`获取元数据信息,如列数、列名、数据类型等。 7. **存储过程的调用**: - 使用CallableStatement调用数据库的存储过程,传入参数和接收返回值。 8. **性能优化**: - 使用...
- **结果集元数据**:`ResultSetMetaData`对象提供列的相关信息。 - **JDBC逃逸**:防止SQL注入的编码技术。 ### 10. 示例代码 ```java Class.forName("com.mysql.jdbc.Driver"); Connection conn = ...
Java 语言中经常使用的数据库操作对象和方法整合,主要包括 DatabaseMetaData、ResultSet、ResultSetMetaData 等对象。 DatabaseMetaData 对象 DatabaseMetaData 对象提供了关于整个数据库的信息,包括表名、表的...