如何将 Spring 与 JDBC 集成?

Posted

技术标签:

【中文标题】如何将 Spring 与 JDBC 集成?【英文标题】:How to integrate Spring with JDBC? 【发布时间】:2012-06-01 22:47:46 【问题描述】:

我目前正在使用以下代码连接mysql数据库,但是项目经理说我必须使用Spring框架来处理连接。

我怎样才能做到这一点?

使用 Spring 处理数据库连接会提高整个系统的质量吗?

这是一个类的例子

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;

public class SomeClass 
   Connection connection = null;
   ResultSet resultSet;
   Statement state;
   ArrayList aList = new ArrayList();

   public void connectToDatabase(String databaseName)
   
      try
      
         Class.forName("com.mysql.jdbc.Driver").newInstance();
         connection = (Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/" + databaseName, "username", "password");
         state = (Statement) connection.createStatement();
      
      catch(Exception e)
      
         JOptionPane.showMessageDialog(null, e);
      
   

private void populateAList() 
   try
   
      connectToTable("testDB");
      resultSet = state.executeQuery("SELECT listItems FROM tblListItems WHERE ID = '" + theIDYouWant + "'");

      while(resultSet.next())
      
         aList.add(resultSet.getString("listItems"));
      

      resultSet.close();
      state.close();
   
   catch(Exception e)
   
      JOptionPane.showMessageDialog(null, e);
   

【问题讨论】:

答案提供了文档的链接——但您应该首先查看那里。 【参考方案1】:

Spring 参考指南提供detailed documentation of its support for JDBC。最起码,使用JdbcTemplate——除了new JdbcTemplate(...) 之外什么都不需要你做最基本的使用——会:

消除大量样板代码, 移除忘记关闭语句和连接的功能, 减少对不适当异常处理的诱惑,并且 让摆脱低效的连接处理变得非常容易。

您展示的代码遇到了所有这四个问题,所以我不得不说切换到 Spring 对您来说将是一个巨大的好处。

另外,如果您使用的是多线程应用程序(所有 web 应用程序都是多线程的),请将“自动线程安全”添加到您的代码也缺少的列表中。

【讨论】:

感谢您的帮助,我正在阅读这些文档,但是其中一些对我没有意义,我在 java 中的数据库编程方面没有很多经验,这也是原因为什么我发布这个问题。我发现 [this][1] 看起来不那么令人困惑。请查看它,让我知道我在最终在系统中实施 Spring 方面是否走在正确的轨道上。 [1]:vogella.com/articles/SpringJDBC/article.html 这似乎是对 Spring JDBC 的合理介绍,除了您可以跳过所有“Spring 安装”和“依赖注入”内容。该教程中既不需要也不需要它们。如果您是数据库编程新手,请从 Java JDBC Tutorial 开始。

以上是关于如何将 Spring 与 JDBC 集成?的主要内容,如果未能解决你的问题,请参考以下文章

spring与mybatis集成

无法将 GWT 与 Spring RestTemplate 实现集成

7spring集成hibernate

HBase JDBC驱动Phoenix与SpringJDBCTemplate的集成

Spring的设计理念和整体架构

Spring Boot 集成 Ehcache 缓存,三步搞定!