2 flyinghehehe Flyinghehehe 于 2016.02.03 23:40 提问

关于用DBUtils封装javavbean的问题

为了便于讲的更清楚举个例子。
假如自定义了一个person类如下:
class person{
       private String name;
        private Address address;
//以下一系列的getter和setter方法,省略
}
自定义的Address类如下:
class Address {
       private String city;
       private String street;
//以下一系列的getter和setter方法,省略​
}
这两个类分别对应两张表。
使用DBUtils可以将基本数据类型的字段封装到javabean 中,若定义的javabean里有的属性类型又是另一个
自定义的javabean的话(例如以上的person类)。
我的问题是:在这种情况下,那么使用DBUtils如何将表数据封装到person中。主要是Address属性。
我的一个解决思路是:先把Address表中数据封装到一个Address javabean中,再手动调用person的setter方法将这个Address对象赋值给person。但是如果javabean中的自定义类型比较多的时候,这样
自己一个一个的调用setter器会很麻烦的。不知道你们是如何解决这个问题的。

没有C币了,抱歉。

1个回答

caozhy
caozhy   Ds   Rxr 2016.02.04 07:00

你可以写一个递归去复制属性的程序,通过反射获得属性,然后赋值,如果属性是一个类类型,那么对它再递归。

具体代码:
http://wenku.baidu.com/link?url=_0o6nXYes3mlydMAsqC8NWxCcUgkfDYKPlin8EOT3ZIJPKTNbZsjxW_pEigey_CmWC6yf6aOaDft0l3AT9rZX3kar43ciN3nS6bQXDyQzOy

另一个方法就是序列化,再反序列化。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
DbUtils简单封装JDBC
DBUtils封装JDBC框架 将JDBC的一些语句进行封装,对于用户的使用提供了很大的方便,因此,有许多的商家都对JDBC进行了封装,比较出名的就有以下三家。 1.Hibernate 全自动的封装,不需要写SQL语句; 2.Itatis 半自动的框架,需要写SQL语句; 3.DBUtils简单的封装框架。 其中commons-dbutils是Apache公司的开源软件,对JDBC进行了
dbutils简单封装
dbutils是一个为简化JDBC操作的小类库。
dbutils通用类,dbutils分页查询
dbutils通用类,dbutils分页查询,第一部分是公共类,封装好了操作数据库的方法。第二部分是分页的bean。   第一部分: public class DBUtilsTemplate { private DataSource dataSource; private QueryRunner queryRunner; private static final Log LO
C3P0和dbutils数据库连接池封装的使用(一)
首先用数据库连接池管理Connection,我们就可以重复使用Connection了,有了连接池我们就可以不用自己创建Connection, 然后用完把它归还给连接池就行了,首先用c3p0数据库连接池,需要向项目中导入两个包:mchange-commons-java-0.2.11.jar和c3p0-0.9.5.2.jar,如果用的数据库是oracle的话,需要导入三个包需要再加上一个:c3p0-o
DBUtils原理及基本使用
首先我们通过一个基本的演示来了解一下DBUtils的基本原理 public class UseDButils { public static void main(String[] args) { /*addUser(new User("weijinhao","123456")); quary("weijinhao");*/ } public static void ad
Connection DBUtils (封装了原始JDBC对数据库的操作的一个开源类库)
DBUtils是Apache组织提供的一个能方便的对各种数据库进行操作的开源类库,它是一个对数据库操作的类库,把对数据库操作的JDBC代码重新进行了封装,简化了我们使用JDBC代码操作数据库的繁琐度,减少重复代码的数量。          DBUtils类库中包括若干类和接口,最重要的是Dbutils、QueryRunner、MapListHandler、BeanListHandler类和Res
dbutils中使用BeanListHandler时发生的错误
下面是我的程序代码截图,代码很简单,就是利用queryrunner的query方法进行数据查询,然后将查询的结果数据封装在一个bean集合中数据库表截图如下:程序一运行,就发生下面的错误java.sql.SQLException: Cannot create com.haitao.gaoruan.Biao01: com.haitao.gaoruan.Biao01 Query: select * fr
JDBC-DBUtils开源工具类库(简化查询封装数据过程)
1.封装Student类 package com.oracle.model; import java.io.Serializable; @SuppressWarnings("serial") public class Student implements Serializable{ private int id; private String name; private String
从零开始学JDBC--1.17 使用DbUtils组件实现CRUD和结果集快速封装
public class App_query { private Connection conn = null;DbUtils支持使用自定义的ResultSetHandler处理结果集 这种处理方式的优点在于:拥有极大的灵活性 缺点在于:实现方式比较繁琐,增加编码复杂度我们先看看使用这个组件实现的自定义结果集处理方法testMyQuery():1. 使用DbUtils提供的自定义封装结果
解决:DButils QueryRunner count(*) JavaBean里封装的结果集 返回null 或者返回 0
当你的结果集是一下两种情况时: 化妆品:0 家电:0 服饰:0 或 化妆品:null 家电:null 服饰:null 你可能出现这个错误: JavaBean中的字段名与数据库中字段名不一致。 我要:使用聚合函数,返回每一个分类里的商品数。下图这种效果。 化妆品1家电3服饰1 输出:结果集为文章开头那两种。