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

原创 2005年05月15日 18:56:00

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

头大了。

quartz1.8.6数据库持久化

  • 2017年06月20日 00:52
  • 3.07MB
  • 下载

使用ehcache时如何持久化数据到磁盘,并且在应用服务器重启后不丢失数据

使用ehcache时如何持久化数据到磁盘,并且在应用服务器重启后不丢失数据 1、如何持久化到磁盘 2、配置文件修改 3、系统初始化时添加 4、修改ehcache源码 另外,持久化到硬盘的对象都需要是可...

Redis持久化磁盘IO方式及其带来的问题   有Redis线上运维经验的人会发现Redis在物理内存使用比较多,但还没有超过实际物理内存总容量时就会发生不稳定甚至崩溃的问题,有人认为是基于快照方式持

一、对Redis持久化的探讨与理解     redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是 Snap...
  • kaosini
  • kaosini
  • 2013年06月26日 11:26
  • 3065

SQL自动生成与数据库持久层封装

  • 2017年05月05日 12:26
  • 19KB
  • 下载

EJB.JPA-数据库持久层开发实践详解

  • 2015年09月26日 12:14
  • 241.41MB
  • 下载

Redis持久化磁盘IO方式及其两种方式带来的问题

一、对Redis持久化的探讨与理解     redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是 Snap...

DADAO数据库持久层依赖包

  • 2017年02月14日 22:52
  • 386KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库中的"持久"和磁盘上的"持久"
举报原因:
原因补充:

(最多只允许输入30个字)