Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在每个事务中查询\更新数据库是否有效:Java应用程序_Java_Mysql_Database - Fatal编程技术网

在每个事务中查询\更新数据库是否有效:Java应用程序

在每个事务中查询\更新数据库是否有效:Java应用程序,java,mysql,database,Java,Mysql,Database,我正在用java设计一个实时图书管理系统。所以我需要在数据库中保存所有用户、书籍、事务(3个表用户、书籍、事务)。我已经为此实现了JDBC 所以,我想知道其中哪一个更好 1) 一直在查询和更新数据库,比如说我必须从usertable中验证用户身份,或者从book表中查询一本书 或 2) 一旦应用程序启动,首先查询数据库,并将相应的表存储在Hashset中,然后在更新或查询时迭代Hashset,并在执行结束时将所有Hashset更新到数据库中。Gavin King在某处向您微笑。有一个名为Hibe

我正在用java设计一个实时图书管理系统。所以我需要在数据库中保存所有用户、书籍、事务(3个表用户、书籍、事务)。我已经为此实现了JDBC

所以,我想知道其中哪一个更好

1) 一直在查询和更新数据库,比如说我必须从usertable中验证用户身份,或者从book表中查询一本书


2) 一旦应用程序启动,首先查询数据库,并将相应的表存储在Hashset中,然后在更新或查询时迭代Hashset,并在执行结束时将所有Hashset更新到数据库中。

Gavin King在某处向您微笑。有一个名为Hibernate的ORM(对象关系模型)工具,它完全是为您当前拥有的那种用例而创建的。使用Hibernate,您可以创建表示数据库模式中的表、用户、书籍和事务的Java对象。当您执行业务逻辑时,这些对象将得到更新。通过控制每个事务(会话)的大小和范围,可以决定何时何地与数据库同步。要与数据库同步时,可以调用
flush()
方法


你的问题的答案是,这取决于许多因素。一般来说,您希望避免搅动数据库,因此应围绕这一点创建数据库事务的大小和范围。

您需要多久查询或更新一次?除非您的负载太高,导致性能问题,否则我只使用数据库。在启动时缓存数据会带来更大的复杂性和潜在的bug。我猜JDBC会因为他的用例而输给Hibernate。但我可能错了。我建议使用hibernate和按需缓存。是的,我对ORM有点了解。但我想使用JDBC,因为它很简单。@ThomasStets:每次用户登录并进行一些事务时。我需要更新/查询。所以经常是这样。