业务对象(Business Object,BO) 和 hibernate的数据传输对象DTO有些什么联系和区别??对表的操作为什么有了DTO还要有业务对象BO??小弟初学不太懂 还请高手指教 如果能用比较浅显的代码例子说清楚 分肯定是你的 谢谢 我看别人的项目里对某个表或者功能中都会有xxxAction类为Struts的Action类,xxxx为Struts的FormBean类,xxxxBO为业务对象类,xxxSO为查询数据类,xxxDTO为数据传输对象类。 还请高手说明下 谢谢`
我看到对同一张表 业务对象BO还有DTO都差不多代码 一些字段 然后就是get/set方法 只是字段数量不同 谢谢各位帮忙 小弟菜得很
业务对象和数据传输对象的关系和区别?
答案:4 悬赏:30 手机版
解决时间 2021-02-05 08:25
- 提问者网友:太高姿态
- 2021-02-04 11:39
最佳答案
- 五星知识达人网友:野味小生
- 2021-02-04 11:47
1.一般的FormBean里面的字段都是String型的,用于将页面的表单封装,如:
public class UserForm{
String userId;
String userName;
String userAge;
...
//以及一些他们的get/set方法
}
因为从页面表单提交过来的值都是String的.
2.DTO里面属性的类型和数据库表的字段类型相同,否则你的hibernate的hbm.xml会报错。
如:
public class UserModel{
int userId;
String userName;
int userAge;
...
//以及一些他们的get/set方法
}
3.BO里面一般可能会放一些和业务相关的属性:
比如下订单业务,需要用到用户表的字段(姓名,地址,联系电话等字段)和商品表的字段(商品名称,商品价格等字段),那么BO可能会是:
public class OrderService{
//-----------用户表
String userName;
int userAge;
String address ;
...以及他们的get/set方法
//商品表
String goodsName;
int goodsNum;
float price;
...以及他们的get/set方法
}
这样在需要向订单表里面插入一条记录的时候,直接session.save(OrderService的对象)即可.
只不过订单对象set值的时候,是从用户表和商品表2张表里面来的.起到一个拼装的作用.
public class UserForm{
String userId;
String userName;
String userAge;
...
//以及一些他们的get/set方法
}
因为从页面表单提交过来的值都是String的.
2.DTO里面属性的类型和数据库表的字段类型相同,否则你的hibernate的hbm.xml会报错。
如:
public class UserModel{
int userId;
String userName;
int userAge;
...
//以及一些他们的get/set方法
}
3.BO里面一般可能会放一些和业务相关的属性:
比如下订单业务,需要用到用户表的字段(姓名,地址,联系电话等字段)和商品表的字段(商品名称,商品价格等字段),那么BO可能会是:
public class OrderService{
//-----------用户表
String userName;
int userAge;
String address ;
...以及他们的get/set方法
//商品表
String goodsName;
int goodsNum;
float price;
...以及他们的get/set方法
}
这样在需要向订单表里面插入一条记录的时候,直接session.save(OrderService的对象)即可.
只不过订单对象set值的时候,是从用户表和商品表2张表里面来的.起到一个拼装的作用.
全部回答
- 1楼网友:孤老序
- 2021-02-04 15:50
本质上不同,用起来用同一个也可以.
再看看别人怎么说的。
- 2楼网友:一秋
- 2021-02-04 14:47
最典型的区别就是各自的职责不一样:
BO负责业务逻辑,操纵DTO。但是DTO不能操纵BO。
DTO负责数据传输,但BO不参与。
没有区别吗?
- 3楼网友:纵马山川剑自提
- 2021-02-04 13:18
这个题目太简单了,网上就可以查到
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯