- 浏览: 1615121 次
- 性别:
- 来自: 长春
文章分类
- 全部博客 (309)
- ext (19)
- web (13)
- PHP (19)
- 互联网新闻 (3)
- oracle (3)
- Mootools (1)
- FLEX (3)
- 人在职场 (2)
- hibernate (24)
- spring2 (1)
- J2SE (24)
- WEB_UI (14)
- 其它 (11)
- Log4J (1)
- iText (10)
- SQL (11)
- 设计模式 (3)
- lucene (6)
- 开源项目 (2)
- javascript (20)
- 软件&破解补丁 (48)
- Quartz (2)
- 解决方案 (1)
- 工作存档 (2)
- JAVA对文件操作 (2)
- C&C#&VC (1)
- struts2 (3)
- 版本控制 (2)
- 软考基础 (23)
- JBPM (2)
- velocity (4)
- javamail (3)
- HttpClient (9)
- 虚拟化技术 (2)
- 报表 (3)
- ibatis (5)
- Spring (4)
- 信用卡 (0)
- 芒果钱包 (0)
- 养卡 (0)
最新评论
-
a601962168:
...
通过JAVA与串口(RS232)通信实例 -
olive009:
...
Adobe Acrobat 9 Pro & Pro Extended 中文版/英文版 下载及破解补丁 -
overshit:
api更新了,一加filter就Callback filter ...
深入浅出CGlib-打造无入侵的类代理 -
u010778233:
写得很不错,已经用起来了,谢谢
将jdbc结果集转换成对象列表 -
924060929:
我想找就是要这个功能!!!!!!!!
velocity基础教程--2自定义ResourceLoader实现字符模板
将jdbc结果集转换成对象列表
估计hibernate就是用得这种方式进行转换的。
实体对象
具体的工具类
估计hibernate就是用得这种方式进行转换的。
实体对象
package test; //实体对象,该对象的属性与数据库中的字段相同,当然可以改变具体看需求 public class Person { private int id; private int age; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package test; import java.lang.reflect.Field; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; public class Main { //用于测试的方法 public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, ClassNotFoundException { Connection conn = DbUtils.getConn(); ResultSet rs = null; PreparedStatement psmt = null; System.out.println(conn); try { psmt = conn.prepareStatement("select * from person"); rs = psmt.executeQuery(); List list = DbUtils.populate(rs, Person.class); for(int i = 0 ; i<list.size() ; i++){ Person per = (Person) list.get(i); System.out.println("person : id = "+per.getId()+" name = "+per.getName()+" age = "+per.getAge()); } } catch (SQLException e) { e.printStackTrace(); }finally{ if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs=null; } if(psmt!=null){ try { psmt.close(); } catch (SQLException e) { e.printStackTrace(); } psmt=null; } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } conn=null; } } } }
具体的工具类
package test; import java.lang.reflect.Field; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class DbUtils { private static String url = "jdbc:mysql://localhost:3306/test"; private static String username = "root"; private static String password = ""; private static String driverClass = "com.mysql.jdbc.Driver"; //没什么好说的,获取数据库连接 public static Connection getConn(){ Connection conn = null; try { Class.forName(driverClass); conn = DriverManager.getConnection(url,username,password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } /* * 将rs结果转换成对象列表 * @param rs jdbc结果集 * @param clazz 对象的映射类 * return 封装了对象的结果列表 */ public static List populate(ResultSet rs , Class clazz) throws SQLException, InstantiationException, IllegalAccessException{ //结果集的元素对象 ResultSetMetaData rsmd = rs.getMetaData(); //获取结果集的元素个数 int colCount = rsmd.getColumnCount(); // System.out.println("#"); // for(int i = 1;i<=colCount;i++){ // System.out.println(rsmd.getColumnName(i)); // System.out.println(rsmd.getColumnClassName(i)); // System.out.println("#"); // } //返回结果的列表集合 List list = new ArrayList(); //业务对象的属性数组 Field[] fields = clazz.getDeclaredFields(); while(rs.next()){//对每一条记录进行操作 Object obj = clazz.newInstance();//构造业务对象实体 //将每一个字段取出进行赋值 for(int i = 1;i<=colCount;i++){ Object value = rs.getObject(i); //寻找该列对应的对象属性 for(int j=0;j<fields.length;j++){ Field f = fields[j]; //如果匹配进行赋值 if(f.getName().equalsIgnoreCase(rsmd.getColumnName(i))){ boolean flag = f.isAccessible(); f.setAccessible(true); f.set(obj, value); f.setAccessible(flag); } } } list.add(obj); } return list; } }
发表评论
-
Java中Calendar日期对象【笔记】
2010-02-03 09:18 1519Java中Calendar日期对象【笔记】 最近项目中用到了C ... -
通过JAVA与串口(RS232)通信实例
2009-12-10 18:13 21157最近了解到的需求是需要需激光打刻机进行(RS232)串口通信, ... -
JAVA常用的代理设置
2009-09-09 09:50 8236由于公司上网实行代理机制, 而最近一段时间又在研究Web上的O ... -
解析图片1D/2D码(条形码)
2009-06-26 16:07 3528看到一个有趣的东西可以解析条码的工具库 ZXING 测试了一下 ... -
初探JDK6 javax.script (javascript解析)
2009-06-04 13:40 4857初探JDK6 javax.script (javascript ... -
J2SE5.0新特性之监控与管理
2009-05-12 10:47 1740j2se 5.0使用 Java Management Exte ... -
HttpClient请求中文乱码详解
2009-02-16 14:10 38994HttpClient 请求的中文乱码问题 相关类库: comm ... -
java的socket通信的demo
2008-12-31 12:44 4210package test.socket; impor ... -
java创建系统托盘实现(swt和jdk6分别实现)
2008-12-29 21:44 4360由于jdk6之前并不支持 所以使用swt jdk6可以支持了 ... -
java与电子邮件
2008-10-07 15:23 1894java与电子邮件 -
如何通过jndi连接数据源
2008-09-22 09:43 1394// Obtain our environment nam ... -
使用+JDBC+的高级数据库操作
2008-09-19 13:27 1325使用+JDBC+的高级数据库操作 -
JSP文件下载--流方式
2008-08-11 14:14 1977<%@page language="jav ... -
apache的fileupload详解
2008-07-31 08:53 2348第1章 文件上传组件的应用与编写 1 1.1 准备实验环境 1 ... -
深入浅出CGlib-打造无入侵的类代理
2008-07-28 14:23 33658CGlib是什么? CGlib是一个强大的,高性能,高质量的C ... -
传统jdbc获取连接的通用方法
2008-06-19 14:24 2581可能是hibernate和ide的关系, 发现目前自己手写jd ... -
apache fileupload中文编码问题
2008-06-18 15:10 4482request.setCheracterEncoding( ... -
JAVA中的反射机制详解(z)
2008-04-14 09:52 1318作者:baocl JAVA反射机制 JAVA反 ... -
JAVA代码注释
2008-03-20 12:09 3315整个类文件注释 示例如下: /* * @(#)O ... -
properties属性文件的相关操作
2008-03-17 13:56 1398properties的使用 加载 Properties p ...
相关推荐
目录 第1章 JDBC概述 1.1 JDBC简介 1.2 JDBC3.0规范 1.3 JDBC3.0 API的新特点 1.3.1 JDBC 3.0 API的一致性 ...9.3.2 将数据库的图象二进制数据显示成图片 9.4 Java开发中的其他技术 9.5 本章小结
3.BeanListHandlerExample.java,演示BeanListHandler如何使用,BeanListHandler实现类将结果集转换成指定对象类型的集合。 4.InsertUpdateExample.java,演示如何执行添加和更新。 5.ResultSetHandlerExample.java,...
MyBatis对JDBC访问数据库的过程进行了封装,简化了JDBC代码,解决了JDBC将结果集封装为Java对象的麻烦。对查询SQL执行后返回的ResultSet对象,Mybatis会帮我们处理,转换成Java对象。 此外,MyBatis还支持自定义SQL...
MySQl语句 show databases; 打开数据库 create database 数据库名; 新建数据库 use 数据库名; 使用数据库 ...(1).to_char:转换成字符串 a. 日期转换..............................后面文档自己下载
BeanProcessor BeanProcessor匹配列明到Bean属性名,并转换结果集列到Bean对象的属性中. DbUtils 一个JDBC辅助工具集合. ProxyFactory 产生JDBC接口的代理实现. QueryLoader 属性文件加载器,主要用于加载属性文件中...
ResultSetHandle:封装数据的策略对象------将封装结果集中的数据,转换到另一个对象 策略:封装数据到对象的方式(示例:将数据库保存在User、保存到数组、保存到集合) 方法介绍:handle(ResultSet rs)
鉴于数据库遵循大写-下划线命名约定,名称与 java 对象字段名称匹配,因此可以方便地将行从 JDBC 结果集转换为 java 对象。 IE 数据库表名和列名 USER_DETAIL.USER_ID USER_DETAIL.NUMERICAL_ID USER_DETAIL.FIRST_...
Mybatis 省去了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 Mybatis 可以通过简单的 XML 或注解将原始类型、接口和 Java POJO(plain old Java objects)配置和映射为数据库中的记录。 3.什么是ORM? ...
18.4.5 查询结果转换器 18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2...
1.commons-beanutils.jar...12.commons-DbUtils.jar:Apache组织提供的一个资源JDBC工具类库,它是对JDBC的简单封装,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 13.commons-Email.jar: 提供开源的API
2.JDBC工具类,提供数据库连接池,结果集映射成对象功能 3.常用加密算法工具类,包括MD5、SHA、DES、HMAC、Base64等 4.RSA加解密,RSA签名、签名验证类 5.文件处理工具类,实现文件的复制、移动、查找、追加内容等。...
一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List, Object>>结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List, Object>>转化为JavaBean工具类...
结果集映射:MyBatis 能够将查询结果自动映射到 Java 对象上,无需手动解析和转换结果集。 动态 SQL:MyBatis 提供了强大的动态 SQL 功能,可以根据条件动态生成不同的 SQL 语句,减少了代码冗余和提高了灵活性。 ...
结果集映射:MyBatis 能够将查询结果自动映射到 Java 对象上,无需手动解析和转换结果集。 动态 SQL:MyBatis 提供了强大的动态 SQL 功能,可以根据条件动态生成不同的 SQL 语句,减少了代码冗余和提高了灵活性。 ...
结果集映射:MyBatis 能够将查询结果自动映射到 Java 对象上,无需手动解析和转换结果集。 动态 SQL:MyBatis 提供了强大的动态 SQL 功能,可以根据条件动态生成不同的 SQL 语句,减少了代码冗余和提高了灵活性。 ...
18.4.5 查询结果转换器 18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2...
18.4.5 查询结果转换器 18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2...
18.4.5 查询结果转换器 18.5 查询性能优化 18.5.1 iterate()方法 18.5.2 查询缓存 18.6 小结 18.7 思考题 第19章 Hibernate高级配置 19.1 配置数据库连接池 19.1.1 使用默认的数据库连接池 19.1.2...
8.3.1 将Bean打包成JAR文件 8.3.2 在开发环境中组合Bean 8.4 Bean属性与事件的命名模式 8.5 Bean属性的类型 8.5.1 简单属性 8.5.2 索引属性 8.5.3 绑定属性 8.5.4 约束属性 8.6 BeanInfo类 8.7 属性编辑器 8.7.1 ...