Java中的数据库管理

Java中的数据库管理,java,multithreading,Java,Multithreading,我正在用Java制作一个服务器,为flash客户端提供聊天服务。服务器将把每个用户的数据存储在服务器某处的.txt文件中。例如,当用户登录时,有关该用户的信息会被请求到DatabaseManger类。然后它将搜索数据库并返回信息。关键是,当allot of people在短时间内登录时,服务器会一次又一次地执行allot of checks。 我想要实现的想法是,连接类执行如下操作: String userData = DatabaseManager.getUserData(this.usern

我正在用Java制作一个服务器,为flash客户端提供聊天服务。服务器将把每个用户的数据存储在服务器某处的.txt文件中。例如,当用户登录时,有关该用户的信息会被请求到DatabaseManger类。然后它将搜索数据库并返回信息。关键是,当allot of people在短时间内登录时,服务器会一次又一次地执行allot of checks。 我想要实现的想法是,连接类执行如下操作:

String userData = DatabaseManager.getUserData(this.username);

DatabaseManager不会立即搜索,它将此请求存储在一个请求数组中,然后在固定的时间间隔内遍历数据库1次,并将数据返回给请求此请求的客户端。这样,当15个人在一秒钟内登录时,所有信息不会被浏览15次。如何实现这一点?

您像地球上其他人一样使用真正的DBMS。我很想听听为什么有人不为这个应用程序选择DB。我想不出什么能阻止它。在当时,RDBMS是笨拙、昂贵、复杂的野兽。如今,在收银台上,它们就像小报一样随处可见


现在没有理由不使用DB,而且可以说,对于大多数应用程序来说,使用DB的理由比使用文件系统的理由更多。

如上所述,我建议使用现有的数据库解决方案,如HSQLDB,从长远来看,这样做比一起破解自己的解决方案要好得多


如果你真的想做这件事,看看下面的。然后,您可以延迟向executor服务发出请求,并在该延迟中侦听更多数据并将其添加到查询中。

您是否分析了是否需要执行此操作?对我来说,这似乎是一种更好的方法,特别是因为同时执行的写命令可能会破坏系统,我希望它定期更新。它可能会破坏系统,因为您选择了最落后的方式。那么,你希望定期阅读如何防止同时写作产生的任何麻烦呢?我的想法是让阅读和写作在这个时间系统上都能工作。最重要的是写入,因为要这样做,我必须创建一个新的.txt文件,将数据复制到其中,删除旧文件并重命名它。我认为很明显,这个系统也将应用于写操作……感谢您的回复,我决定采用一种简单的数据库方法,只使用一个.txt文件来存储用户数据。我想知道如何在Java中实现一个函数等待返回,并且manager类以固定的时间间隔返回所有这些函数。@user1126865:不使用现有的数据库解决方案,您就是在承诺重新发明插入、查询、索引、缓存、并发等功能。+1。此外,在简历中添加JDBC和事务处理比使用基于文本文件的专有持久性机制更有用。owkay感谢您提供的信息,从长远来看,这种解决我问题的替代方法似乎更稳定。