将SQL语句保存在属性文件中是一种好习惯吗? - Java / Spring

时间:2015-09-22 07:17:27

标签: java spring spring-boot spring-jdbc

我是设计应用程序结构的新手,最近我有一个在Spring-boot中开发应用程序的任务。我也使用Spring JDBC进行数据库连接。

在处理DAO层时,我偶然发现了一个想法,我应该在哪里保留我的SQL语句?我首先想到的是属性文件。但后来当我在网上搜索时,我在大多数例子中都看到了SQL语句在方法本身中。

所以,我只是想知道什么是一个好方法呢?就应用程序设计而言。

  • 属性文件中的SQL
  • 方法正文中的SQL

2 个答案:

答案 0 :(得分:2)

你应该看一下spring-data,它会为你节省很多样板代码。您可以在注释中为存储库指定自定义SQL语句(如果需要)。

使用@Query注释查看更多详细信息here和自定义SQL here

IMO,我认为最好将SQL与实际使用的代码放在一起,就像在这种情况下一样。

答案 1 :(得分:0)

这实际上取决于项目的SQL数量。如果您有十几个简单(即CRUD)查询,那么将代码放入代码中会有点麻烦。

如果您有许多复杂的查询,而其他查询包含在其他查询中,则会重复使用某些SQL位等,您应该考虑使用某些库来管理数据库访问。属性文件并不是为了存储查询,实际上(尽管,将SQL放在无数的类中更好!)。

如果您使用JPA,则可以使用 Spring Data ;即使你不能将SQL查询放在方法注释中,Spring也会在运行时为你自动生成一个方法体。

或者,如果您的项目是SQL重,请查看 MyBatis 。它对于具有大量复杂查询的项目非常有用。它将为您的DAO生成方法体,并允许您将SQL放在.xml配置文件中,或者再次放在方法注释中。