Mysql
 sql >> база данни >  >> RDS >> Mysql

Не са разрешени операции след затваряне на извлечението

Създайте Помощен клас за управление на връзката, за да го управлявате в една точка в цялото приложение.

Не зареждайте DataSource всеки път, когато имате нужда от нова връзка.

Примерен код:

public class ConnectionUtil {

    private DataSource dataSource;

    private static ConnectionUtil instance = new ConnectionUtil();

    private ConnectionUtil() {
        try {
            Context initContext = new InitialContext();
            dataSource = (DataSource) initContext.lookup("JNDI_LOOKUP_NAME");
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }

    public static ConnectionUtil getInstance() {
        return instance;
    }

    public Connection getConnection() throws SQLException {
        Connection connection = dataSource.getConnection();
        return connection;
    }

    public void close(Connection connection) throws SQLException {
        if (connection != null && !connection.isClosed()) {
            connection.close();
        }
        connection = null;
    }

}

Винаги затваряйте връзката и я обработвайте в try-catch-finally

        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
            conn = ConnectionUtil.getInstance().getConnection();

            ...
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (conn != null) {
                ConnectionUtil.getInstance().close(conn);
            }
        }


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Показване на съобщение за грешка на SQL

  2. Добра идея ли е да използвате MySQL и Neo4j заедно?

  3. Кой е най-простият начин за съхраняване на данни от java програма в MySQL?

  4. SQL заявка със средно и групиране по

  5. SQLSTATE[42S22]:Колоната не е намерена:1054 Неизвестен идентификатор на колона в клауза where (SQL:изберете * от `songs`, където `id` =5 ограничение 1)