使用Spring或单独的库/模式实现数据库访问?

时间:2013-01-30 17:16:24

标签: java spring design-patterns spring-jdbc

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

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

4 个答案:

答案 0 :(得分:1)

请看MyBatis(形式为iBatis)。

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

还有更多。

答案 1 :(得分:1)

以前讨论了使用原始SQL或ORM工具之间选择的一些问题:

Hibernate, iBatis, Java EE or other Java ORM tool

答案 2 :(得分:1)

使用JdbcTemplate,您的应用程序代码仍然有责任提供sql,然后JdbcTemplate可以执行SQL查询或更新,迭代ResultSet并捕获JDBC异常。如果您想要编写硬编码的sql语句,则需要查看ORM工具,如HibernateiBatis

答案 3 :(得分:0)

在Java类中使用SQL没有任何内在错误(尽管它有点争议)。如果要外部化SQL查询,可以:

  • 使用非常成熟的MyBatis
  • 将SQL放入applicationContext.xml Spring配置文件并将其注入POJO(穷人的MyBatis)
  • 隐藏DAO模式后面的SQL(interface SomeDaoclass SqlSomeDao已封装SQL
  • ...如果你已经拥有SQL,那么像JPA这样的完整ORM

同时查看Spring Data JDBC generic DAO - JdbcTemplateRowMapper<T>之上的小型DAO实施。免责声明:我是这个图书馆的作者。