发表于: 2020-08-02 22:54:00

1 1336


今天完成的事情:

写完分配游客昵称接口、查看banner接口、查看导航接口.

了解mybatis的一对多查询

了解DO、VO、DTO的概念。


在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应于数据库中存储的数据(数据表),DTO对应于除二者之外需要进行传递的数据。

DO(Domain Object)

就是从现实世界中抽象出来的有形或无形的业务实体。一般和数据中的表结构对应。

VO (Value Object )

用于表示一个与前端进行交互的 java 对象。有的朋友也许有疑问,这里可不可以使用 PO 传递数据?实际上,这里的 VO 只包含前端需要展示的数据即可,对于前端不需要的数据,比如数据创建和修改的时间等字段,出于减少传输数据量大小和保护数据库结构不外泄的目的,不应该在 VO 中体现出来。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

DTO (Data Transfer Object)

用于表示一个数据传输对象。DTO 通常用于不同服务或服务不同分层之间的数据传输。DTO 与 VO 概念相似,并且通常情况下字段也基本一致。但 DTO 与 VO 又有一些不同,这个不同主要是设计理念上的,比如 API 服务需要使用的 DTO 就可能与 VO 存在差异。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。


mybatis一对多查询

<mapper namespace="com.jnshu.dao.FirstPortFolioMapper">
 <select id="getAllFirstPortFolio" resultMap="BaseResultMap">
       select * from first_portfolio
</select>
 <resultMap id="BaseResultMap" type="com.jnshu.entity.FirstPortFolio">
   <id column="id" jdbcType="INTEGER" property="id" />
   <result column="name" jdbcType="VARCHAR" property="name" />
   <result column="create_at" jdbcType="BIGINT" property="createAt" />
   <result column="update_at" jdbcType="BIGINT" property="updateAt" />
   <result column="create_by" jdbcType="VARCHAR" property="createBy" />
   <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
   <collection property="secondPortFolioList" javaType="ArrayList" ofType="SecondPortFolio" select="getSecondPortFolio"  column="id"/>
 </resultMap>
 <select id="getSecondPortFolio" resultType="com.jnshu.entity.SecondPortFolio">
       select * from second_portfolio where first_id = #{id}
</select>

</mapper>

在作品集一级分类实体添加一个集合属性用来存储查找出来的对应的作品集二级分类数据

private List<SecondPortFolio> secondPortFolioList;

明天计划的事情:

写剩下的接口
遇到的问题:


收获:

mybatis的一对多查询


返回列表 返回列表
评论

    分享到