JDBC MySql 테이블 삭제 코드

JDBC MySql 테이블 삭제 코드

작성일 2022.11.27댓글 1건
    게시물 수정 , 삭제는 로그인 필요

자바 스윙으로 mysql과 연동하여 테이블 목록을 보여주는 프로그램을 만드는 중인데
스윙에서 테이블 목록 하나를 선택하여 삭제 버튼을 눌러서 데이터를 삭제해버리고 싶은데 
어떻게 코드를 짜야하는 지 모르겠어서 질문해봅니다..


#jdbc mysql #jdbc mysql 연동 #jdbc mysql driver #jdbc mysql url #jdbc mysql connector #jdbc mysql driver class name #jdbc mysql mariadb #jdbc mysql 8 #jdbc mysql update #jdbc mysql replication

profile_image 익명 작성일 -

테이블 목록 조회 결과를 javax.swing.JComboBox 객체에 뿌리고

삭제 버튼 클릭 시 콤보박스에서 선택된 이름을 테이블명으로 지정하여 DELETE 구문 수행하시면 됩니다.

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Vector; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; public class JComboBoxEx { JFrame f; JComboBox<String> combo; public JComboBoxEx() { showFrame(); } private void showFrame() { f = new JFrame(); f.setBounds(600, 400, 300, 100); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); f.add(p); // 콤보박스 생성 // => 테이블 목록 조회 결과 Vector 객체를 목록으로 사용 combo = new JComboBox<String>(showTables()); p.add(combo); // 버튼 생성 JButton btnDelete = new JButton("삭제"); p.add(btnDelete); // 삭제 버튼 리스너 연결 btnDelete.addActionListener((e) -> { // 목록에서 선택된 항목 문자열로 변환하여 전달 deleteTableData(combo.getSelectedItem().toString()); }); f.setVisible(true); } // DB 연결 private Connection getConnection() { Connection con = null; String driver = "com.mysql.cj.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/java"; String user = "root"; String password = "1234"; try { Class.forName(driver); con = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException e) { System.out.println("드라이버 로드 실패! - " + e.getMessage()); } catch (SQLException e) { System.out.println("DB 연결 실패! - " + e.getMessage()); } return con; } // 테이블 목록 조회(Vector 객체에 저장 후 리턴) private Vector<String> showTables() { Connection con = getConnection(); PreparedStatement pstmt = null; ResultSet rs = null; Vector<String> tableList = new Vector<String>(); try { String sql = "SHOW TABLES"; pstmt = con.prepareStatement(sql); rs = pstmt.executeQuery(); while(rs.next()) { // 1번 컬럼(테이블 이름) 데이터 저장 tableList.add(rs.getString(1)); } } catch (SQLException e) { e.printStackTrace(); } finally { try { rs.close(); pstmt.close(); con.close(); } catch (SQLException e) { e.printStackTrace(); } } return tableList; } // 테이블 데이터 삭제(테이블명 전달 받기) private void deleteTableData(String tableName) { Connection con = getConnection(); PreparedStatement pstmt = null; try { String sql = "DELETE FROM " + tableName; pstmt = con.prepareStatement(sql); int deleteCount = pstmt.executeUpdate(); if(deleteCount > 0) { JOptionPane.showMessageDialog(f, "테이블 데이터 삭제 완료!"); } } catch (SQLException e) { e.printStackTrace(); } finally { try { pstmt.close(); con.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void main(String[] args) { new JComboBoxEx(); } }

DB 테이블 목록

콤보박스에 표시된 테이블 목록

test 테이블 데이터

삭제 완료 시

삭제 결과

이상입니다.

자바 프로그래밍에 관심이 많으시면

아이티윌 부산교육센터에서 진행하는

국비무료 자바 교육 과정도 한 번 확인해 보세요!

http://www.itwillbs.co.kr

감사합니다.

No suitable driver found for jdbc...

... SQLException" %> 회원 목록 MEMBER 테이블... 추측해보자면 MY-SQL JDBC드라이버를... 첨부하신 코드중에 JDBC드라이버를 로딩하는...

자바 이클립스 mysql

... member 테이블에 memberNo 열의 마지막값에... DbUtils 클래스를 생성하고 아래 코드를 복사합니다. package jdbc; import java.sql....

Mysql 내용 삭제

... 1번이랑 2번에 해당하는 코드좀 알려주실수있나요? 자세하게 설명해주세요!!... 먼저 select로 where 조건에 부합하는 필드를 확인하고 delete하세요. 테이블 삭제

mysql 이클립스 연동

... public UserDao() { try { String dbURL = "jdbc:mysql... 이 코드에서 자꾸 -1만 리턴되는데 어떤 것이 문제일까요..? mysql 에 user 테이블에...