【问题标题】:How to integrate Spring with JDBC?如何将 Spring 与 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);
   }
}

}

【问题讨论】:

  • 答案提供了文档的链接——但您应该首先查看那里。

标签: java mysql spring jdbc


【解决方案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 开始。
猜你喜欢
  • 1970-01-01
  • 2011-09-11
  • 2021-08-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2014-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多