데이터베이스에 다시 연결 한 후 JDBC에서 Statement를 어떻게 재사용합니까?

Boombastic

MySQL 데이터베이스에 대한 JDBC 연결은 10 초 동안 활동이 없으면 만료됩니다. 다시 연결 한 후에는 어떤 쿼리도 할 수 없으며, 연결이 아직 닫혀있는 것처럼 다시 연결할 것인지 계속 묻습니다.

내가 가진 :
1. 글로벌 진술서 일이라고
2. 세계의 ResultSet라는 RS,
3 CONN라는 글로벌 연결,
연결 설정은하는 방법 setConnection 4.
5. 방법 checkConnection 수표가 연결이 살아 있다면 것을 그렇지 않은 경우 setConnection 메소드를 호출하여 새 것을 설정합니다
. 6. checkConnection을 호출하는 버튼이고 반환 된 부울이 true이면 쿼리를 실행합니다.

private Connection conn = null;
private Statement st=null;
private ResultSet rs=null;

    public void setConnection(){
             host="localhost";
             database="test";
             username="testtest";
             password="testtest";
             String url = "jdbc:mysql://" + host + "/" +database+ "";
             try {
                 Class.forName ("com.mysql.jdbc.Driver");
                 conn = DriverManager.getConnection (url, username, password);
                 System.out.println("Succesfuly connected to the database!");

             } catch(Exception e){
                 System.out.println("Failed to connect to the database.");
                 e.printStackTrace();
             }  
        }

    private boolean checkConnection(){
            try {
                ResultSet cc = st.executeQuery("SELECT 1");
                return true;
            } catch (SQLException e) {
                int n = JOptionPane.showConfirmDialog(
                        frame,
                        "The connection was closed, reconnect?",
                        "Database security measure",
                        JOptionPane.YES_NO_OPTION);
                if(n == JOptionPane.YES_OPTION){
                    try {
                        conn.close();
                    } catch (SQLException e1) {
                        e1.printStackTrace();
                    }
                      setConnection();
                    } else if ( n == JOptionPane.NO_OPTION){
                        frame.setVisible(false);
                        new LoginWindowB();
                    }
                return false;
            }
        }
    btn1.addActionListener(new ActionListener(){
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    if(checkConnection()){
                        try {
                            rs = st.executeQuery("SELECT * FROM " + selectedTable);
                            loadData(rs);

                        } catch (SQLException e) {
                            e.printStackTrace();
                        }
                    } else {

                    }
                }   
            });

이 재 연결 문제를 어떻게 처리 할 수 ​​있으며 새 연결을 설정 한 후 쿼리가 작동하지 않는 이유는 무엇입니까?

기욤 F.

st귀하의 예제에서 어디에서 초기화했는지 는 알 수 없지만 범인 냄새가납니다. 새 연결을 만들 때 새 문도 만들어야합니다.

모든이 PreparedStatement클라이언트에 연결되고 연결과 함께 닫힙니다.

연결 풀 관리자 라이브러리 를 사용하는 것이 더 쉬울 수 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

UCanAccess-keepMirror를 사용한 후 Access 데이터베이스에 다시 연결할 수 없음

분류에서Dev

데이터베이스에 데이터를 게시 한 후 어떻게 다른 페이지로 리디렉션 할 수 있습니까?

분류에서Dev

hibernate.c3p0.timeout에 도달 한 후 데이터베이스 연결은 어떻게됩니까?

분류에서Dev

aws sam을 사용하여 다른 데이터베이스에 연결하고 로컬 배포시 sequelize를 사용하려면 어떻게해야합니까?

분류에서Dev

WPF를 사용하여 성공적으로 연결 한 후 Access 데이터베이스에서 데이터를 가져올 수 없습니다.

분류에서Dev

Node + Express : 데이터베이스에 데이터를 게시 한 후 콜백을 호출하지 않습니다.

분류에서Dev

golang에서 gorm을 사용하여 ssh를 통해 데이터베이스를 어떻게 연결합니까?

분류에서Dev

MySQL 데이터베이스를 C ++ 코드에 어떻게 연결합니까?

분류에서Dev

데이터베이스를 업데이트 한 후 소량의 데이터 만 변경 될 때 데이터는 일반적으로 장치에서 어떻게 다시로드 / 표시됩니까? (개념 상)

분류에서Dev

SQL 데이터베이스 사용자를 다른 Windows 기반 로그인에 연결하려면 어떻게해야합니까?

분류에서Dev

Mongo 데이터베이스에 Date 객체를 전달하는 방법은 mongo 데이터베이스를 통과 한 후 Int64로 변환됩니다. pymongo를 사용하여 어떻게 할 수 있습니까?

분류에서Dev

로컬로 또는 원격 시스템에서 데이터베이스 연결을 허용하도록 SQL Server를 어떻게 구성합니까?

분류에서Dev

SQL Server LocalDB : 데이터베이스를 같은 컴퓨터 (컴퓨터, 같은 경로)에 분리했다가 다시 연결 한 후 데이터베이스를 백업 할 수 없습니다.

분류에서Dev

사용자의 기본 데이터베이스를 오프라인으로 전환 한 후 MS SQL Server에 다시 액세스하려면 어떻게해야합니까?

분류에서Dev

Spring Boot-재시작 후 데이터베이스에 다시 연결

분류에서Dev

C9에서 서버를 재부팅 한 후 PostgreSQL 데이터베이스가 비어 있습니다.

분류에서Dev

localStorage를 사용한 후 Vue 3에서 요소를 어떻게 다시 렌더링합니까?

분류에서Dev

django 3.1로 업그레이드 한 후 테스트 데이터베이스에 연결할 수 없습니다.

분류에서Dev

웹에서 IIS를 사용하여 SQL 데이터베이스를 웹 호스팅 사이트에 연결하려면 어떻게해야합니까?

분류에서Dev

서버에 데이터베이스를 생성 한 후 새 SQL 연결 설정

분류에서Dev

버전 8.0으로 업그레이드 한 후 MySQL 데이터베이스에 연결할 수 없습니다.

분류에서Dev

호스트를 새 네트워크에 연결 한 후 VM의 인터넷 연결이 끊어졌습니다.

분류에서Dev

monk를 사용하여 여러 MongoDB 데이터베이스에 어떻게 연결할 수 있습니까?

분류에서Dev

내 서버를 내 데이터베이스에 연결하려면 어떻게해야합니까?

분류에서Dev

Elixir Ecto에서 데이터베이스 연결 문제를 어떻게 감지합니까?

분류에서Dev

어떻게 (DAO를 사용하여) 데이터베이스에서 데이터를 삭제 한 후 내 활동을 갱신 할

분류에서Dev

Liquibase 데이터베이스 연결 시간 초과 및 재시도 횟수를 어떻게 설정합니까?

분류에서Dev

Python이 약 하루 후에 MySQL 데이터베이스와의 연결이 끊어집니다.

분류에서Dev

PostgreSQL : 데이터베이스 나열 사용자에게 연결할 권한이 있습니다.

Related 관련 기사

  1. 1

    UCanAccess-keepMirror를 사용한 후 Access 데이터베이스에 다시 연결할 수 없음

  2. 2

    데이터베이스에 데이터를 게시 한 후 어떻게 다른 페이지로 리디렉션 할 수 있습니까?

  3. 3

    hibernate.c3p0.timeout에 도달 한 후 데이터베이스 연결은 어떻게됩니까?

  4. 4

    aws sam을 사용하여 다른 데이터베이스에 연결하고 로컬 배포시 sequelize를 사용하려면 어떻게해야합니까?

  5. 5

    WPF를 사용하여 성공적으로 연결 한 후 Access 데이터베이스에서 데이터를 가져올 수 없습니다.

  6. 6

    Node + Express : 데이터베이스에 데이터를 게시 한 후 콜백을 호출하지 않습니다.

  7. 7

    golang에서 gorm을 사용하여 ssh를 통해 데이터베이스를 어떻게 연결합니까?

  8. 8

    MySQL 데이터베이스를 C ++ 코드에 어떻게 연결합니까?

  9. 9

    데이터베이스를 업데이트 한 후 소량의 데이터 만 변경 될 때 데이터는 일반적으로 장치에서 어떻게 다시로드 / 표시됩니까? (개념 상)

  10. 10

    SQL 데이터베이스 사용자를 다른 Windows 기반 로그인에 연결하려면 어떻게해야합니까?

  11. 11

    Mongo 데이터베이스에 Date 객체를 전달하는 방법은 mongo 데이터베이스를 통과 한 후 Int64로 변환됩니다. pymongo를 사용하여 어떻게 할 수 있습니까?

  12. 12

    로컬로 또는 원격 시스템에서 데이터베이스 연결을 허용하도록 SQL Server를 어떻게 구성합니까?

  13. 13

    SQL Server LocalDB : 데이터베이스를 같은 컴퓨터 (컴퓨터, 같은 경로)에 분리했다가 다시 연결 한 후 데이터베이스를 백업 할 수 없습니다.

  14. 14

    사용자의 기본 데이터베이스를 오프라인으로 전환 한 후 MS SQL Server에 다시 액세스하려면 어떻게해야합니까?

  15. 15

    Spring Boot-재시작 후 데이터베이스에 다시 연결

  16. 16

    C9에서 서버를 재부팅 한 후 PostgreSQL 데이터베이스가 비어 있습니다.

  17. 17

    localStorage를 사용한 후 Vue 3에서 요소를 어떻게 다시 렌더링합니까?

  18. 18

    django 3.1로 업그레이드 한 후 테스트 데이터베이스에 연결할 수 없습니다.

  19. 19

    웹에서 IIS를 사용하여 SQL 데이터베이스를 웹 호스팅 사이트에 연결하려면 어떻게해야합니까?

  20. 20

    서버에 데이터베이스를 생성 한 후 새 SQL 연결 설정

  21. 21

    버전 8.0으로 업그레이드 한 후 MySQL 데이터베이스에 연결할 수 없습니다.

  22. 22

    호스트를 새 네트워크에 연결 한 후 VM의 인터넷 연결이 끊어졌습니다.

  23. 23

    monk를 사용하여 여러 MongoDB 데이터베이스에 어떻게 연결할 수 있습니까?

  24. 24

    내 서버를 내 데이터베이스에 연결하려면 어떻게해야합니까?

  25. 25

    Elixir Ecto에서 데이터베이스 연결 문제를 어떻게 감지합니까?

  26. 26

    어떻게 (DAO를 사용하여) 데이터베이스에서 데이터를 삭제 한 후 내 활동을 갱신 할

  27. 27

    Liquibase 데이터베이스 연결 시간 초과 및 재시도 횟수를 어떻게 설정합니까?

  28. 28

    Python이 약 하루 후에 MySQL 데이터베이스와의 연결이 끊어집니다.

  29. 29

    PostgreSQL : 데이터베이스 나열 사용자에게 연결할 권한이 있습니다.

뜨겁다태그

보관