0

我目前正在使用以下代码连接到 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);
   }
}

}

4

1 回答 1

3

Spring 参考指南提供了它对 JDBC 的支持的详细文档。至少,使用JdbcTemplatenew JdbcTemplate(...) ——除了最基本的用法,你不需要任何东西——会:

  • 消除大量样板代码,
  • 删除忘记关闭语句和连接的能力,
  • 减少对不适当异常处理的诱惑,以及
  • 使摆脱低效的连接处理变得非常容易。

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

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

于 2012-06-01T22:50:43.700 回答