【发布时间】:2021-06-12 04:57:03
【问题描述】:
尽我所能,我似乎找不到一个简单的 SpringBoot 应用程序示例,它使用 Spring Data JDBC 和 Postgres 数据库,或者如何从数据库生成实体类,或者如果需要,反之亦然,甚至如何获取对数据源的引用。
有很多使用 JPA 的示例。 有几个例子可以即时启动 H2/HSQL。 有几个在 Spring 中使用 Postgres 而不是 Spring Boot,这意味着这些示例有许多额外的步骤。
我相信我知道需要哪些依赖项——基本上是 Postgres 和 Spring Data JDBC 启动器,两者都在 start.spring.io 中提供——就数据源属性而言,this link 中的示例似乎可以工作。 ..
spring.datasource.url=jdbc:postgresql://localhost:5432/shopme
spring.datasource.username=postgres
spring.datasource.password=password
但我找不到如何声明存储库类,或如何实例化或获取对所述存储库的引用。如果the docs 是为了解释这一点,恐怕他们的美德在我身上丢失了。从the examples they link to,看来我可以创建一个这样的存储库...
interface CategoryRepository extends CrudRepository<Category, Long>, WithInsert<Category> {}
...然后像这样获取对我的存储库实现的引用...
@Autowired CategoryRepository repository;
...我想这会以某种方式使用我来自application.properties 的 Postgres 信息。
这些都没有解决表模式 => POJO 生成(反之亦然)。但即使我对上述内容是正确的,这也是我的持久层。我不习惯从一些示例代码中复制/粘贴,得到一个好的结果(现在),然后宣布它完成了。我宁愿根据真实信息工作。
如果我从有效的 Postgres 连接信息开始,并且我知道我希望我的实体看起来像什么......
- 如何在属性中捕获我的 Postgres 连接信息? (我怀疑我上面的属性示例是正确的,但这只是从某个链接复制/粘贴)
- 如何编写表然后生成实体类,或者相反?我更喜欢前者,但现在我会满足于任何一个。
- 如何获取对我的 Postgres 数据库的 DataSource 的引用? (我可能永远不需要,但我想知道如何做)
- 如何定义存储库类? (如果我对 CrudRepo 感到满意,我相信我会扩展
CrudRepository<AggRoot, IdType>,但我对此很模糊) - 如何使用我的 postgres 信息/数据源实例化我的 repo 类?
- 如何获得对这个 repo 的引用?
我敢肯定,如果我在基本 Spring 方面更强大,这会更容易,但我正在学习这一点。
非常感谢!
豆子
【问题讨论】:
标签: postgresql spring-boot spring-jdbc