我想构建一个与mySQL数据库连接的Java程序,该数据库由具有不同的多对多和一对多表连接的表组成。
该计划旨在处理具有不同作者和评论的书籍。作者和书籍通过多对多连接相关联。 (作为作者可以写不同的书籍,书籍可以有不同的作者)。书籍和评论通过一对多连接进行连接。
在程序方面,我制作了一个Album对象,将其作者和评论存储在单独的数组列表中。我们的想法是遍历不同的专辑,然后选择专辑数据,然后是作者和评论。
问题在于,无法找出最佳方法。我想如果这是在一个封闭的交易中做得最好,那就更好了。
凭借我有限的SQL和Java经验,我只能看到3种不同的方式来执行此任务:
我应该在程序端执行此操作,循环根据行号循环遍历每个专辑,然后通过单独的存储过程获取作者seperalty并使用另一个存储过程恢复外键
或者我应该将整个操作作为数据库端的存储过程进行?
或者我应该在一个大的连接过程中获取所有表,然后通过som Java函数迭代这个结果集?
或者这是一种更好的方法吗?
BR
答案 0 :(得分:0)
如果我是你,我会使用ORM。 Java具有JPA2标准,例如,它实现了通过Hibernate或Eclipselink,这使您可以轻松读取对象之间的1:n和n:m关系。
在大多数用例中,您不需要迭代,而是从查找查询开始(例如,用户正在搜索特定作者的所有书籍)。 ORM允许您发出此查询并获取书籍列表,评论已经是每本书的预填列表。
答案 1 :(得分:0)
我建议您使用ORM(对象关系映射)框架,该框架可以简化从Java对象访问MySQL中的关系数据。见Hibernate