- 浏览: 914812 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (445)
- 备忘 (0)
- java基础 (28)
- jsp (15)
- css (4)
- javascript (30)
- struts (7)
- servlet (2)
- struts2 (7)
- jdbc (16)
- hibernate (22)
- ibatis (0)
- jpa (1)
- spring (17)
- spring定时任务 (8)
- 整合开发 (12)
- JavaArticle (0)
- php (6)
- velocity (2)
- mysql (19)
- sqlserver (52)
- oracle (23)
- lucene (49)
- ajax (13)
- dwr (5)
- JFreeChart (1)
- service (14)
- tools (18)
- c#基础 (20)
- 程序安全 (0)
- 学习网站 (1)
- 社会需求 (2)
- flash (1)
- 流媒体 (1)
- java_code (1)
- htmlparser (1)
- 速动画教程 (5)
- 设计模式 (1)
- xml操作 (2)
- uml操作 (4)
- 测试 (1)
- linux (8)
- 版本控制 (4)
- 服务器 (12)
- 安全 (6)
- 美工 (2)
最新评论
-
Zhang_amao:
我想问一下, 你用的lucene版本和highligher的版 ...
使用Lucene的Highlighter实现文件摘要的自动提取 -
wangmengfanwangzhi:
博主,你的QQ是什么啊?有关于lucene的问题想要请教啊~~ ...
Lucene下载及测试 -
cutesunshineriver:
讲得很好,理解起来很顺,对个人学习的帮助性很大,谢谢博主。
velocity入门一 -
libin2722:
我这里有一个任务调度,在晚上3点时候会自动将数据库中某表的数据 ...
Lucene-2.2.0 源代码阅读学习(16) -
greatwqs:
java -cp $JVM_ARGS $classpath ...
java的cp命令
将jdbc结果集转换成对象列表
估计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(rsmd.getColumnClassLabel(i));
- // }
- //返回结果的列表集合
- 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;
- }
- }
发表评论
-
jdbc操作参数元数据
2009-10-02 14:56 1135import java.sql.Connection;impo ... -
jdbc得到数据库的元数据
2009-10-02 14:06 1236public static void getDatabaseM ... -
ResultSet 游标控制
2009-10-02 13:40 3698之前在建立Statement或 PreparedStateme ... -
数据库分页大全
2009-10-02 13:21 877Mysql分页采用limt关键字 select * from ... -
jdbc批处理
2009-10-02 11:01 2185看下面的方法 Java代码 Connection conn = ... -
jdbc得到插入数据的id
2009-10-01 17:36 1379//得到插入数据的id(statement还有很多关键字需要研 ... -
JDBC调用存储过程
2009-10-01 17:16 881DELIMITER $$ DROP PROCEDURE IF ... -
JDBC事务的保存点处理
2009-10-01 11:57 888在JDBC的事物处理中,可 ... -
大字段的插入
2009-09-30 20:59 1078//字符读取用read 字符读 ... -
出现的错误
2009-09-30 19:12 1074You have an error in your SQL s ... -
数据库连接类-延迟创建
2009-09-30 18:46 960import java.sql.Connection;impo ... -
数据库连接类-单例
2009-09-30 18:37 1511import java.sql.Connection;impo ... -
数据库连接类-无实例
2009-09-30 18:19 871import java.sql.Connection;impo ... -
连接不同数据库
2009-09-30 14:15 8361.MySQL(http://www.mysql.com)m ... -
jdbc出现的问题
2008-11-18 15:20 822更新数据需要commit在查询数据的时候,没有报错i,但就是无 ...
相关推荐
4.4.3 非标准JDBC API类的行集 4.4.4 行集合的接口 4.5 事务 4.5.1 事务提交(Commit) 4.5.2 事务使用实例 4.6 JNDI与JDBC API 4.6.1 JDBC数据源 4.6.2 实例 4.7 连接池 4.7.1 连接池数据源(Connection ...
3.BeanListHandlerExample.java,演示BeanListHandler如何使用,BeanListHandler实现类将结果集转换成指定对象类型的集合。 4.InsertUpdateExample.java,演示如何执行添加和更新。 5.ResultSetHandlerExample.java,...
MySQl语句 show databases; 打开数据库 create database 数据库名; 新建数据库 use 数据库名; 使用数据库 ...(1).to_char:转换成字符串 a. 日期转换..............................后面文档自己下载
MyBatis对JDBC访问数据库的过程进行了封装,简化了JDBC代码,解决了JDBC将结果集封装为Java对象的麻烦。对查询SQL执行后返回的ResultSet对象,Mybatis会帮我们处理,转换成Java对象。 此外,MyBatis还支持自定义SQL...
BeanProcessor BeanProcessor匹配列明到Bean属性名,并转换结果集列到Bean对象的属性中. DbUtils 一个JDBC辅助工具集合. ProxyFactory 产生JDBC接口的代理实现. QueryLoader 属性文件加载器,主要用于加载属性文件中...
鉴于数据库遵循大写-下划线命名约定,名称与 java 对象字段名称匹配,因此可以方便地将行从 JDBC 结果集转换为 java 对象。 IE 数据库表名和列名 USER_DETAIL.USER_ID USER_DETAIL.NUMERICAL_ID USER_DETAIL.FIRST_...
①数据库链接对象、sql语句操作对象,封装结果集对象,这三个对象会重复定义 ②封装数据的代码重复,而且操作复杂,代码量大 ③释放资源的代码重复 ResultSetHandle的实现类 ResultSetHandle:封装数据的策略对象--...
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...
2.JDBC工具类,提供数据库连接池,结果集映射成对象功能 3.常用加密算法工具类,包括MD5、SHA、DES、HMAC、Base64等 4.RSA加解密,RSA签名、签名验证类 5.文件处理工具类,实现文件的复制、移动、查找、追加内容等。...
1.commons-beanutils.jar...12.commons-DbUtils.jar:Apache组织提供的一个资源JDBC工具类库,它是对JDBC的简单封装,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 13.commons-Email.jar: 提供开源的API
一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List, Object>>结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List, Object>>转化为JavaBean工具类...
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...
结果集映射:MyBatis 能够将查询结果自动映射到 Java 对象上,无需手动解析和转换结果集。 动态 SQL:MyBatis 提供了强大的动态 SQL 功能,可以根据条件动态生成不同的 SQL 语句,减少了代码冗余和提高了灵活性。 ...
结果集映射:MyBatis 能够将查询结果自动映射到 Java 对象上,无需手动解析和转换结果集。 动态 SQL:MyBatis 提供了强大的动态 SQL 功能,可以根据条件动态生成不同的 SQL 语句,减少了代码冗余和提高了灵活性。 ...
结果集映射:MyBatis 能够将查询结果自动映射到 Java 对象上,无需手动解析和转换结果集。 动态 SQL:MyBatis 提供了强大的动态 SQL 功能,可以根据条件动态生成不同的 SQL 语句,减少了代码冗余和提高了灵活性。 ...
还有pdf教程。 在今日的企业环境中,把面向对象的软件和关系数据库一起使用...不管怎样,Hibernate一定可以帮助你消除或者包装那些针对特定厂商的SQL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。