当前位置: 首页 > news >正文

静态网站设计方案网站开发职业环境分析

静态网站设计方案,网站开发职业环境分析,施工企业奖惩制度范本,怎么创建网站?在数据库设计中,一对多关系是非常多的,例如消息通知和附件,一个消息通知中往往会包含多个附件,这种情况下使用mybatis动态sql可以很方便的查询出来。 1、数据库设计 消息表:sys_message CREATE TABLE sys_message (i…

在数据库设计中,一对多关系是非常多的,例如消息通知和附件,一个消息通知中往往会包含多个附件,这种情况下使用mybatis动态sql可以很方便的查询出来。

1、数据库设计

消息表:sys_message

CREATE TABLE `sys_message` (`id` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL,`title` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '标题',`content` mediumtext COLLATE utf8mb4_unicode_ci COMMENT '内容',`message_fk` varchar(40) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '附件fk'PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='消息管理';

附件表:sys_attachment

CREATE TABLE `sys_attachment` (`id` varchar(40) NOT NULL COMMENT '主键',`file_name` varchar(50) NOT NULL COMMENT '原文件名',`storing_name` varchar(100) NOT NULL COMMENT '存储文件名',`size` bigint(20) NOT NULL COMMENT '大小',`fk` varchar(40) NOT NULL COMMENT '业务主键',`suffix_type` tinyint(4) DEFAULT NULL COMMENT '类型(后缀)',`file_type` tinyint(4) DEFAULT '0' COMMENT '文件类型:0其他 1图片 2视频',`url` varchar(200) NOT NULL COMMENT '访问地址',`absolute_path` varchar(200) NOT NULL COMMENT '绝对路径',PRIMARY KEY (`id`)
)

一条消息对应多个附件,附件表中的 fk引用消息表的message_fk


2、实现

返回类型是Message对象,其中有一个 List<SysAttachment> fileList,存储附件信息。

public class SysMessage extends LaboratoryBaseModel<SysMessage> {private static final long serialVersionUID=1L;       @TableField("id")private String id;@TableField("title")private String title;@TableField("content")private String content;@TableField("message_fk")private String messageFk;@TableField(exist = false)private List<SysAttachment> fileList;}

这种情况下,在动态sql的标签中,返回值只能使用resultMap属性接收:

 <select id="selectMessagePage" resultMap="sysMessageMap">SELECT*FROMsys_message a
</select>

resultMap是一个外部结果映射关系的引用,描述了结果数据的映射关系,在resultMap中有一个 collection标签,分别是:

  • column:message表的message_fk,即一对多的一中被引用的字段名
  • property:SysMessage中fileList属性,属性名是fileList
  • javaType:SysMessage中fileList属性的对应的java类型Arraylist
  • ofType:javaType的数据类型SysAttachment
  • select:需要引用的select标签的名字,<select id="selectFileByFk">

实际上, collection标签的含义是:对于每一条【消息查询】的结果,都要根据message_fk去到执行select属性中的查询语句,将查询结果封装到fileList属性。其中column属性会当作参数传递<select id="selectFileByFk">标签中。

	<resultMap id="sysMessageMap" type="cn.xxx.model.SysMessage"><result property="id" column="id"/><result property="title" column="title"/><result property="content" column="content"/><result property="messageFk" column="message_fk"/><collection column="message_fk"property="fileList"javaType="Arraylist"ofType="cn.yibiao163.laboratory.model.SysAttachment"select="selectFileByFk"></collection></resultMap>
<select id="selectFileByFk" resultMap="cn.xxx.repository.SysAttachmentMapper.sysAttachmentMap">select * from sys_attachment where is_deleted = 0 and fk = #{message_fk}
</select>

<select id="selectFileByFk" 标签中,使用了resultMap="cn.yibiao163.laboratory.repository.SysAttachmentMapper.sysAttachmentMap",除了resultMap还有一个 resultType属性,可以配置一个java类,用来转换sql语句执行的结果。应用如下:

<select id="selectFileByFk" resultType="cn.xxx.model.SysAttachment">select * from sys_attachment where is_deleted = 0 and fk = #{message_fk}
</select>
public class SysAttachment extends LaboratoryBaseModel<SysAttachment> {private static final long serialVersionUID=1L;@TableField("file_name")private String fileName;@TableField("storing_name")private String storingName;@TableField("size")private Long size;@TableField("fk")private String fk;@TableField("suffix_type")private String suffixType;@TableField("file_type")private Integer fileType;@TableField("url")private String url;@TableField("absolute_path")private String absolutePath;}

3、完整mapper.xml

<resultMap id="sysMessageMap" type="cn.yibiao163.laboratory.model.SysMessage"><result property="id" column="id"/><result property="title" column="title"/><result property="content" column="content"/><result property="messageFk" column="message_fk"/><collection column="message_fk"property="fileList"javaType="Arraylist"ofType="cn.yibiao163.laboratory.model.SysAttachment"select="selectFileByFk"></collection>
</resultMap><select id="selectMessagePage" resultMap="sysMessageMap">SELECT*FROMsys_message a
</select><select id="selectFileByFk" resultType="cn.xxx.model.SysAttachment">select * from sys_attachment where is_deleted = 0 and fk = #{message_fk}
</select>
http://www.yayakq.cn/news/333670/

相关文章:

  • 可以做猫头像的网站安卓搭载wordpress
  • 二七郑州网站建设惠州抖音seo策划
  • 门户网站登录页面wordpress房产系统
  • 天津网站制作培训wordpress重装主题
  • 虚拟网站管理系统集团网站建设方案书
  • 企业网站建设方案包含可以注册的网站
  • 长洲网站建设石家庄做网站价格
  • 投票网站源码php手机app ui界面设计
  • 西安seo网站推广优化围场网站建设
  • 有哪些静态网站js多久可以做网站
  • 七牛云可以做网站的存储空间吗上海网站建设接单
  • 做视频网站盈利模式营销型网站设计官网
  • 南京外贸网站建设公司排名学做网站应该看那些书
  • 白宫网站 wordpress广西建设工程质检安全网站
  • 怎么注册一个网站做色流宁波中科网站建设有限公司
  • 手表到哪个网站买手机维修网站模板
  • 温州网站建设技术外包网站所有分类中 点击箭头不出现下拉菜单
  • 广州番禺桥南做网站公众号开发 网站建设
  • 网站建设的物流我的小程序怎么制作
  • 视频网站开发公司有哪些公司在网上做效果图网站
  • 东莞网站建设制作哪家好网络维护合同范本
  • 内蒙古网站建设价格网站创建方案怎么写
  • wordpress网站如何添加栏目宿州城市建设投资网站
  • 爱站官网上海网站营销
  • 惠民县建设局网站wordpress 4.9.4 汉化
  • 孝感网站开发优搏快2022年网站能用的
  • cn域名建设网站需要备案吗布吉网站建设找哪家公司好
  • 国外有哪些优秀的网站关键词推广优化app
  • 适合做网站背景音乐国外网络ip地址
  • 上海seo网站优化公司北京装修价格