【发布时间】:2013-01-29 14:47:00
【问题描述】:
问题
在我的一些项目中,我使用了 SQL 代码,这没什么特别的。 但我正在重新考虑这个策略。我搜索了一些东西来分开我的 代码和 SQL 语句。
我找到了一个我喜欢的答案,将所有 SQL 语句收集到一个属性文件中。 我认为它很好,很干净。但是如果你想插入变量怎么办。
我发现的另一个解决方案是使用 DAO 对象。例如,您使用以下方法创建一个 MYSQLFactory 类:addCustomer(Customer customer)、deleteCustomer(int CustomerId) 等。您将集中您的 SQL 代码。仍然 不会叫它分开。
有没有更好的方法来做到这一点,而不使用像 Hibernate 这样的 ORM。读得越多,我就越相信 JAVA 没有一种简洁的方法。
搜索来源
Java - Storing SQL statements in an external file
Separating SQL from the Java Code
更新
感谢您的好评。我只是对此感到好奇。 @Gilbert,我认为这是一个很好的解决方案,事实上,我曾经曾经使用过您的解决方案,所以谢谢。 :)
有时我只是想研究某些问题的新方法。
【问题讨论】:
-
“用 JAVA 没有一种简洁的方法”?你有没有找到任何其他语言的简洁方法?如果是这样,您可以尝试重新设计该方法。
-
这个答案就是我所做的。这种方法有什么问题? stackoverflow.com/a/10873022/300257
-
就我个人而言,你可以做的最大的事情是在属性文件中分离它,如果你想替换变量而不是使用“?”,你的查询就会受到注入攻击。
-
@GilbertLeBlanc 这种方法没有任何问题。但是那时您正在制作自己的orm。您正在做的事情与任何其他形式之间的唯一区别是您正在手动生成代码。没有任何逻辑差异。