小小笨笨蛋蛋 2016-02-03 15:40 采纳率: 25%
浏览 1688

关于用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条回答

  • threenewbee 2016-02-03 23:00
    关注

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

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog