java架构之项目结构(entity / DTO / VO)

定义类的讲究

ejb

Enterprise JavaBean(EJB),企业javaBean。是java的核心代码,分别是会话Bean(Session Bean)、实体Bean(Entity Bean)、和消息驱动Bean(MessageDriven Bean)。

javaBean

可重用组件,类必须是具体的公开的,具有无参构造器。

pojo

Plain Ordinary Java Object,简单的Java对象,普通的javaBean。除了getter、setter,不能有其他业务方法。有时可以作为VO(value-object)或DTO(Data Transfer Object)来使用。

entity

持久化,与数据库对应;

实体bean,一般是用于ORM对象关系映射,一个实体映射成一张表,一般无业务逻辑代码。

负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个EntityBean对象相当于创建一条记录,删除一个EntityBean对象会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。

DTO

系统、服务之间交互传输用;

数据传输对象(Data Transfer Object)

dto是做表示层(展示给用户)的,而实体是数据对象(表)。表示层dto的是由多个实体构成,或一个实体的一个部分,或多个实体的各个部分的结合体?如果你认为dto没有必要,难道你做数据库的时候,表与页面的展示是一摸一样的吗?不太现实吧。

dto是面向对象的,实体是面向关系数据库。

VO(和DTO类似)

前台(APP\WAP\PC)展示用;

作用说明:
1、DTO可以增加或者减少entity的字段,来灵活实现信息传递;
2、VO可以仅向前端传输,页面需展示字段,如pageList等。

关系示例
多模块或单模块的项目而言,清晰的项目结构很重要。

如下,一个项目可以分为许多模块,如common模块和其他模块。

project |-- common |-- module1 |-- …
其中 |-- common
|–dao
|–impl
|–*DAO.java
|–dto
|–*DTO.java
|–domain
|–entity
|–*Entity.java

可以在resources中单独写mapper.xml

|-- module1
|–model
|–*VO.java
|–controller
|–service
|–interceptor
|–…

说明:
[controller] controller是从用户接受和发送数据的地方。因此controller中返回结果中的数据类型为VO类型。
[dao] 那么,mybatis中mapper中写的sql语句,如select等的返回结果是什么呢?
可以是entity,可以是DTO。从一张表中查询部分或多表联合查询,就可以返回DTO。
整个
mapper.xml是*DAO对应,其中每个sql语句的返回类型可以是int,List,entity,DTO等。

@RequestMapping(path = "/list", method = RequestMethod.POST)
public Res<**VO> yourmethoed(){
    //<*DTO> = service()...
    //DTO转VO,return VO
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值