JDBC和mySQL将相关的数据库表转换为对象

时间:2016-01-09 19:40:31

标签: java mysql sql sql-server jdbc

我想构建一个与mySQL数据库连接的Java程序,该数据库由具有不同的多对多和一对多表连接的表组成。

该计划旨在处理具有不同作者和评论的书籍。作者和书籍通过多对多连接相关联。 (作为作者可以写不同的书籍,书籍可以有不同的作者)。书籍和评论通过一对多连接进行连接。

在程序方面,我制作了一个Album对象,将其作者和评论存储在单独的数组列表中。我们的想法是遍历不同的专辑,然后选择专辑数据,然后是作者和评论。

问题在于,无法找出最佳方法。我想如果这是在一个封闭的交易中做得最好,那就更好了。

凭借我有限的SQL和Java经验,我只能看到3种不同的方式来执行此任务:

  1. 我应该在程序端执行此操作,循环根据行号循环遍历每个专辑,然后通过单独的存储过程获取作者seperalty并使用另一个存储过程恢复外键

  2. 或者我应该将整个操作作为数据库端的存储过程进行?

  3. 或者我应该在一个大的连接过程中获取所有表,然后通过som Java函数迭代这个结果集?

  4. 或者这是一种更好的方法吗?

    BR

2 个答案:

答案 0 :(得分:0)

如果我是你,我会使用ORM。 Java具有JPA2标准,例如,它实现了通过Hibernate或Eclipselink,这使您可以轻松读取对象之间的1:n和n:m关系。

在大多数用例中,您不需要迭代,而是从查找查询开始(例如,用户正在搜索特定作者的所有书籍)。 ORM允许您发出此查询并获取书籍列表,评论已经是每本书的预填列表。

答案 1 :(得分:0)

我建议您使用ORM(对象关系映射)框架,该框架可以简化从Java对象访问MySQL中的关系数据。见Hibernate