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. MySQLSELECTクエリ文字列マッチング

    2. SQLServerで一括アクセス許可を有効にする方法

    3. MariaDBで文字列と数値を連結する2つの方法

    4. PHPでのMySqlとMySqliの違い