Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MySQL:连接关闭后不允许操作_Java_Mysql_Jdbc - Fatal编程技术网

Java MySQL:连接关闭后不允许操作

Java MySQL:连接关闭后不允许操作,java,mysql,jdbc,Java,Mysql,Jdbc,我在网上读了很多关于这方面的信息,并实施了解决方案,但我仍然看到了这一点,有人能给我一些帮助吗 以下是我正在做的: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub Connectio

我在网上读了很多关于这方面的信息,并实施了解决方案,但我仍然看到了这一点,有人能给我一些帮助吗

以下是我正在做的:

protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub

        Connection connection = DbUtil.getConnection();

        try {

            UserBean user = new UserBean();
            user.setUserName(request.getParameter("username"));
            user.setPassword(request.getParameter("password"));

            user = UserDAO.login(user);

            Statement statement = connection.createStatement();

            ResultSet rs = statement
                    .executeQuery("SELECT * FROM projects WHERE status IN ('Waiting docs','Testing','On hold')");

            List<Project> projects = new ArrayList<Project>();

            while (rs.next()) {
                Project project = new Project();

                project.setProject(rs.getString("project"));
                project.setStatus(rs.getString("status"));
                project.setPoc(rs.getString("poc"));
                project.setDescription(rs.getString("description"));
                project.setDeploy_date(rs.getString("deploy_date"));
                project.setCurrent_status(rs.getString("current_status"));
                project.setNotes(rs.getString("notes"));
                project.setId(rs.getString("id"));

                projects.add(project);
            }

            if (user.isValid()) {

                HttpSession session = request.getSession(true);
                session.setAttribute("currentSessionUser", user);
                request.setAttribute("project", projects);
                RequestDispatcher disp = request.getRequestDispatcher("ListProjects.jsp");
                disp.forward(request, response);
            }

            else {
                RequestDispatcher disp = request.getRequestDispatcher("invalidLogin.jsp");
                disp.forward(request, response); // error page
            }

        }

        catch (Throwable theException) {
            System.out.println(theException);
        }

    }
My db.properties具有自动连接功能:


url=jdbc:mysql://localhost:3306/wsidb?autoReconnect=true

提取数据后,您应该关闭连接、语句或POST。在if和else条件下,在DbUtil中放置一些日志,然后就可以清楚地知道是否创建了新连接,是否使用了现有连接。我更希望您使用某种连接池dpcp或bonecp。

我认为可能是rs,所以。。。我在这里做了一个改变,将进行测试。谢谢你的回答!!!“但我仍然看到了这个”->看到了什么?你的
DbUtil
类是一个非常糟糕的主意,你为所有请求共享一个连接,导致了各种各样的并发问题。改用连接池。你能给我举个例子吗?
package util;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class DbUtil {

    private static Connection connection = null;

    public static Connection getConnection() {
        if (connection != null)
            return connection;
        else {
            try {
                Properties prop = new Properties();
                InputStream inputStream = DbUtil.class.getClassLoader()
                        .getResourceAsStream("/db.properties");
                prop.load(inputStream);
                String driver = prop.getProperty("driver");
                String url = prop.getProperty("url");
                String user = prop.getProperty("user");
                String password = prop.getProperty("password");
                Class.forName(driver);
                connection = DriverManager.getConnection(url, user, password);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return connection;
        }

    }
}