我正在开发一个应用程序,它使用硬编码的 sql 语句从数据库中检索数据,然后将这些数据填充到 pojo 中。正在使用 Spring jdbc 模板,因此无需担心打开/关闭连接。使用硬编码的 sql 语句似乎是错误的?
是否有设计模式或库可以用来抽象 sql 语句?
我正在开发一个应用程序,它使用硬编码的 sql 语句从数据库中检索数据,然后将这些数据填充到 pojo 中。正在使用 Spring jdbc 模板,因此无需担心打开/关闭连接。使用硬编码的 sql 语句似乎是错误的?
是否有设计模式或库可以用来抽象 sql 语句?
使用JdbcTemplate
,您的应用程序代码仍然有责任提供sql
,JdbcTemplate
然后可以执行 SQL 查询或更新,迭代 ResultSets 并捕获 JDBC 异常。如果你想摆脱编写硬编码的 sql 语句,你需要研究一个 ORM 工具Hibernate
,比如iBatis
等
看看MyBatis(以前称为 iBatis)。
还有很多。
以下是关于在使用原始 SQL 或 ORM 工具之间进行选择的一些问题的良好讨论:
在 Java 类中使用 SQL 本质上没有任何问题(尽管它有点争议)。如果您想外部化 SQL 查询,您可以:
applicationContext.xml
Spring 配置文件中,并注入到 POJO(穷人的 MyBatis)interface SomeDao
并且class SqlSomeDao
封装了 SQL)还可以查看Spring Data JDBC generic DAO - small DAO implementation on top of JdbcTemplate
and RowMapper<T>
。免责声明:我是这个库的作者。