配置信息存文件还是数据库

自己搭建后台过程中,我们把一些网站的基本信息配置项放在哪里呢?这是一个值得思考的问题。接下来,我们就来探讨一下

目前是有2种方法:

1.保存在文件中。数据存储在文件,主要考虑I/O,数据量的大小,是否经常修改。因为每次都要读取,会比较麻烦,消耗性能。如果要保存在文件当中,可以参考一下xiuno bbs的做法。
第一步,把配置信息保存到全局变量中
第二步,然后写入到配置文件,写入的时候要用php的copy()函数进行备份
第三步,读的时候直接读取全局变量
2.存储在数据库当中。存在据库的比存在文件的效率低不了多少,如果要存在数据库,加上索引并且加缓存层。

看看其他人是怎么说的

1.既然是公共参数,不管是放到配置文件中还是数据库中,都应该放到缓存中,做法是放到某各类的static变量中
如果这些公共参数在系统运行的时候有可能会发生改变,那么放到数据库中是比较好的,这样改了数据库,刷新一下缓存就可以,不用重启应用,如果在运行时不会改变,最好是放到配置文件中,这样一目了然,开发这个系统的人想要查某个参数的值就很容易
经常变动数据库方便,不经常变动用config好

2.一些经常需要调整的配置,可以考虑写入数据库,方便在网站中修改,可以考虑使用缓存。其他的用配置文件。使用缓存的流程。页面先读取缓存文件,例如 config.php
文件不存在的情况下,读取数据库,并生成缓存文件。下载加载页面时就不会连接数据库了。另外,更改完配置之后,需要重新生成缓存文件,即删除缓存文件。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,可以使用Java编程和Spring Boot框架实现文件信息储在数据库中。 首先,您需要定义一个文件信息的实体类,包含文件名、文件路径、文件类型、文件大小等基本属性,并使用注解标记实体类与数据库表的映射关系。 然后,您需要创建一个Repository接口,继承自Spring Data JPA提供的CrudRepository接口,用于定义文件信息的增删改查操作。 接着,您可以编写一个Service类,调用Repository接口提供的方法实现对文件信息的操作。 最后,在Spring Boot应用程序的配置文件中,配置数据库连接信息和相关属性,启动应用程序时,Spring Boot会自动创建数据库表和初始化数据。 下面是一个示例代码: 文件信息实体类: ``` @Entity @Table(name = "file_info") public class FileInfo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "file_name") private String fileName; @Column(name = "file_path") private String filePath; @Column(name = "file_type") private String fileType; @Column(name = "file_size") private Long fileSize; // getters and setters } ``` Repository接口: ``` public interface FileInfoRepository extends CrudRepository<FileInfo, Long> { // 定义自定义查询方法 } ``` Service类: ``` @Service public class FileInfoService { @Autowired private FileInfoRepository fileInfoRepository; public FileInfo saveFileInfo(FileInfo fileInfo) { return fileInfoRepository.save(fileInfo); } public void deleteFileInfo(Long id) { fileInfoRepository.deleteById(id); } public FileInfo getFileInfo(Long id) { return fileInfoRepository.findById(id).orElse(null); } // 其他查询方法 } ``` 配置文件: ``` spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.hibernate.ddl-auto=create spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect ``` 以上代码仅供参考,具体实现方式可能因应用场景不同而异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值