Hướng dẫn fix bug java swing

Đây Là Phần Thông Báo Lỗi Của Mình

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed.
	at com.edusys.DAO.KhoaHocDAO.selectBySql(KhoaHocDAO.java:78)
	at com.edusys.DAO.KhoaHocDAO.selectAll(KhoaHocDAO.java:46)
	at com.edusys.ui.ThongKeJDialog.fillComBoBoxKhoaHoc(ThongKeJDialog.java:359)
	at com.edusys.ui.ThongKeJDialog.init(ThongKeJDialog.java:337)
	at com.edusys.ui.ThongKeJDialog.<init>(ThongKeJDialog.java:28)
	at com.edusys.ui.ThongKeJDialog$3.run(ThongKeJDialog.java:300)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed.
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed(SQLServerConnection.java:319)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.checkClosed(SQLServerStatement.java:956)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet.checkClosed(SQLServerResultSet.java:348)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getStatement(SQLServerResultSet.java:4263)
	at com.edusys.DAO.KhoaHocDAO.selectBySql(KhoaHocDAO.java:75)
	... 19 more

đây là đoạn báo lỗi của mình


mình đã mò rất nhiều và khá lâu mà k fix dc mong các bạn hỗ trợ ^^

câu này đây, bạn đã close kết nối rồi, còn đâu
đoạn code bạn gửi không nói lên được điều gì cả, vì bạn còn gọi hàm ở chỗ khác, và cũng không biết là còn chỗ nào ảnh hưởng tới nó nữa không, ví dụ như là chỗ nào đó cũng gọi db xong rồi close luôn connection

2 Likes


gọi từ phần này ra nè bạn

Chắc hẳn trước đó bạn đã từng 1 lần truy vấn đến CSDL phải không? Đến lần thứ 2 thì bị vậy.
Mình thấy tất cả các phương thức truy vấn bạn đều đặt getConnection().close() trong finally.
Đúng vậy? Lần thứ nhất nó đã đóng kết nối dùng chung rồi, các lần tiếp theo khỏi truy vấn luôn.

1 Like

vậy mình nên làm gì giờ ạ

Thì đừng đóng hoặc chỉ mở kết nối khi nào truy vấn thôi.

1 Like

ok cảm ơn bạn nhiều nha mình sửa được rồi ^^

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?