java - 如何将Spring与JDBC集成?

标签 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);
   }
}

}

最佳答案

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

  • 消除了大量样板代码,
  • 消除了忘记关闭语句和连接的能力,
  • 减少不当异常处理的诱惑,并且
  • 让您能够轻松摆脱低效的连接处理。

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

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

关于java - 如何将Spring与JDBC集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10858251/

相关文章:

php - 从数据库发送和检索数据并显示在选择框中,无需刷新 CodeIgniter 中的页面

php - 表中有超过 20 万行,脚本加载时间超过 20 秒

java - 配置 Spring Security 以使用自定义 UsernamePasswordAuthenticationFilter

java.sql.SQLException 参数索引超出范围

mysql - 在 Redhat 上安装 mysql,无需互联网,也无需 cd/dvd iso

java - Spring 父子上下文和应用程序监听器

html - spring thymeleaf - 从 html 表中删除对象并将 id 传递给 Controller

java - 这通常是 Java 接口(interface)用于设置事件处理程序的方式吗?这种方法是否存在隐藏的缺点?

java - Spring @PropertySource 刷新

java - 使用 Kryo(自定义序列化程序)序列化对象