【问题标题】:Is there a way to get data from table without repository and entity?有没有办法从没有存储库和实体的表中获取数据?
【发布时间】:2019-03-27 09:19:56
【问题描述】:

我们有 2 个使用 JAVA Spring-boot 的具有相同数据库的项目。主要项目包含实体和存储库文件。这与其他项目不同。由于我们不了解我们创建的主项目的整个系统。问题是我需要从表中获取数据,而不使用获取、保存等存储库功能。我只需要查询表。这可能吗?

谢谢。

【问题讨论】:

  • 看一个jdbc教程。
  • 是的,使用 JDBC 或 JPA 很有可能。

标签: java spring-boot


【解决方案1】:

取决于你想要什么

  • 只有简单的数据
  • 代表数据或部分数据的完整对象

对于第一个我会使用 JDBC(https://www.javatpoint.com/java-jdbc)

对于第二个,我会选择 JPA/Hibernate。 您可以创建一个仅代表您需要的数据的实体并将其设为只读 (How to make an Entity read-only?)。
然后你可以创建一个简单的 CrudRepository/JpaRepository 来获取数据。

【讨论】:

  • 第二个可以安全使用,不会在数据库中创建或删除数据或影响其他代码吗?
  • 应该是,因为如果实体是只读的(保存或删除都不会生效)。如果您创建一个完整的新实体并仅在您的情况下使用它,则不会对其他代码产生影响。例如:我曾经对一个非常大的实体进行过此操作,不允许更改 DB-Structure。所以我为所有搜索字段创建了一个“SmallEntity”。其余代码和以前一样工作
【解决方案2】:

这里有一些提示可以帮助您: 数据库名称/主机/用户/密码应在 *.properties 文件之一中找到。

  • 在存储库中,表名 通常带有@Table 注释。
  • 要了解特定存储库可以执行哪些查询,您可以使用@Query 注释进行检查。或者存储库中的方法可能会提供查询,例如 findByStudentId 表示select from student where id=。

现在有了上面的线索,你可以写一个简单的 JDBC 连接(这真的取决于它在后端是什么数据库),连接到上面的数据库,然后执行你可能想要的查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多