我正在开发一个应用程序,它使用硬编码的 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.xmlSpring 配置文件中,并注入到 POJO(穷人的 MyBatis)interface SomeDao并且class SqlSomeDao封装了 SQL)还可以查看Spring Data JDBC generic DAO - small DAO implementation on top of JdbcTemplateand RowMapper<T>。免责声明:我是这个库的作者。