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

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在一个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)操作获得数据流.

头大了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航