0

我正在开发一个应用程序,它使用硬编码的 sql 语句从数据库中检索数据,然后将这些数据填充到 pojo 中。正在使用 Spring jdbc 模板,因此无需担心打开/关闭连接。使用硬编码的 sql 语句似乎是错误的?

是否有设计模式或库可以用来抽象 sql 语句?

4

4 回答 4

1

使用JdbcTemplate,您的应用程序代码仍然有责任提供sqlJdbcTemplate然后可以执行 SQL 查询或更新,迭代 ResultSets 并捕获 JDBC 异常。如果你想摆脱编写硬编码的 sql 语句,你需要研究一个 ORM 工具Hibernate,比如iBatis

于 2013-01-30T18:07:05.807 回答
1

看看MyBatis(以前称为 iBatis)。

  • 它让您可以将硬编码的 SQL 提取到 XML 文件(甚至是注释)中,
  • 它与 Spring 容器集成,可以使用 Spring Transaction。

还有很多。

于 2013-01-30T17:22:37.843 回答
1

以下是关于在使用原始 SQL 或 ORM 工具之间进行选择的一些问题的良好讨论:

Hibernate、iBatis、Java EE 或其他 Java ORM 工具

于 2013-01-30T17:25:37.207 回答
0

在 Java 类中使用 SQL 本质上没有任何问题(尽管它有点争议)。如果您想外部化 SQL 查询,您可以:

  • 使用非常成熟的MyBatis
  • 把 SQL 放到你的applicationContext.xmlSpring 配置文件中,并注入到 POJO(穷人的 MyBatis)
  • 将 SQL 隐藏在 DAO 模式后面(interface SomeDao并且class SqlSomeDao封装了 SQL)
  • ...如果你已经有 SQL,那么像 JPA 这样的完整 ORM 不是最好的主意

还可以查看Spring Data JDBC generic DAO - small DAO implementation on top of JdbcTemplateand RowMapper<T>。免责声明:我是这个库的作者。

于 2013-01-30T18:13:29.413 回答