Spring 如何通过 CrudRepository 进行 CRUD 操作?

How can I do CRUD operations through CrudRepository in Spring?

我正在使用 PostgresSQL,我有以下界面:

@Repository
public interface ExampleRepository extends CrudRepository<ExampleEntity, Long> { }

然后我尝试获取bean:

ExampleRepository repository = ctx.getBean(ExampleRepository.class);

当然,我不能那样做,因为没有实现,最终我得到

NoSuchBeanDefinitionException: No qualifying bean of type 'ExampleRepository'

我知道这是一种错误的方法,但由于我经验不足,我不知道如何与我的数据库进行通信。我搜索的任何示例仅解释了如何实现服务和控制器以便通过浏览器与数据库交互。但是我想在 java 代码中进行 CRUD 操作。

谁能给我解释一下?任何相关的来源也可以。

您不需要创建 bean。它将由 spring 框架创建,因为您将界面注释为 @Repository 。您只需要 @Autowired 在您的服务中 class 或者您想在哪里使用此引用。

@Autowired 
private ExampleRepository exampleRepository;

我不确定您是如何在此处获取上下文 (ctx) 的。 但是通常的方法是不需要 @Repository,而是应该在 @Configuration 文件中使用 @EnableJPARepositories。然后使用@Autowired 将存储库注入您的服务 class(您要从存储库 bean 执行操作的位置) 您可以参考下面link了解更多详情 https://mkyong.com/spring-boot/spring-boot-spring-data-jpa/