如何将Spring与JDBC集成?

时间:2012-06-01 22:47:46

标签: java mysql spring jdbc

我目前正在使用以下代码连接到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 个答案:

答案 0 :(得分:3)

Spring参考指南提供了detailed documentation of its support for JDBC。至少,使用JdbcTemplate - 除了new JdbcTemplate(...)最基本的用法之外,您不需要任何内容​​ - 会:

  • 消除了很多样板代码,
  • 删除忘记关闭语句和连接的能力,
  • 减少对不适当的异常处理的诱惑,
  • 让人们很容易摆脱低效的连接处理。

你所展示的代码都受到这四种代码的影响,所以我不得不说切换到Spring对你来说是一个巨大的好处。

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