我已经开始学习Spring,并且正在尝试将电影的标题,类型,年份和演员数据存储在数据库(h2)中。如何使用我自己的代码中的方法从该数据库中获取数据以使用system.out.println()
在控制台中将其打印出来?
我有Movie
和Actor
的类及其对应的属性,都用@Entity
批注标记。接下来,我有一个扩展JpaRepository
的接口(我知道有找到所有电影的默认方法,但是我想用自己的方法创建此功能):
public interface MovieDaoI extends JpaRepository<Movie, Long> {
@Query("SELECT m FROM Movie m")
public List<Movie> list();
}
此外,我有一个H3数据库,其中已初始化3部电影(在启动时使用属性文件),并且可以访问h2控制台并使用Web界面创建SQL查询。但是我想要的是在另一个名为list()
的类中使用main方法调用我的方法MoviesApplication
,并使用返回的List并使用简单的system.out.println()
在控制台中将其打印出来。有什么办法吗?
答案 0 :(得分:0)
在您的情况下,您使用的是JPQL而不是SQL查询, 如果您只想使用SQL查询,则应如下所示: @Query(value =“ SELECT m FROM Movie m”,nativeQuery = true)
答案 1 :(得分:0)
@Service //您需要添加此@Service
公共类Bookservice {
@Autowired //您需要添加此@Autowired
私人MovieDaoI movieDaoI;
公共列表list(){
返回MovieDaoI .list();
}
}
答案 2 :(得分:0)
我不清楚您的确切问题是什么。但是我认为您在如何调用Bean中的存储库方法方面遇到问题。
在bean和SpringBootApplication
类中,您可以使用autowired
获取已创建的存储库代理,然后调用方法:
@SpringBootApplication
class MoviesApplication {
@AutoWired
MovieDaoI movieDaoI;
public void someMethod() {
movieDaoI.list();
}
}
但是我认为这不是一个好主意。尝试创建服务或创建测试方法