数据库中的"持久"和磁盘上的"持久"

在一个B/S结构的系统中(struts+hibernate+mysql+tomcat),现在有一个文件管理需求:
1.客户端选择一个文件上传至服务器后,服务器端需要将上传的文件保存至磁盘指定的目录下,并且将文件信息保存至数据库中(包括上传时间,上传者,文件存放路径等等一些信息).
2.下载时服务器端是根据数据库中文件存放路径得到文件下载到客户端.

这样一个文件对象的持久化好象对应了数据库的持久和磁盘空间上的持久.这么这两种持久操作是否应该分别放在两个类中,一个是对数据库的持久,一个是在磁盘上的持久操作.还是两两种操作放在一个类中.

现在我的类是这样的.

public class FileInfo
{
 private Integer id;
 private String location;
 private Date uploadDate;
 
 ...getter,setter operate... 
}


public class FileInfoDAO
{
 public FileInfo getFileInfoById(Integer id)
 {
  ...
 }
 ...
}


public class FileInfoService
{
 
 public FileInfo getFileInfoById(Integer id)
 {
  ...
 }
 
 public InputStream getFile(FileInfo fileInfo)
 {
  String fileName = FileIinfo.getLocation;
  ...
 }
 
 ...
}


现在我感觉把获得文件流操作放在FileInfoService中有点怪怪的,是否把对数据流的操作放到FileIinfo中,然后在FileInfoService中取得FileInfo,通过FileIinfo的getFile(FileInfo fileInfo)操作获得数据流.

头大了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值