Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 1일1로그
- 백준자바 #백준10718
- GUI
- 자바수업
- 스터디
- 화이자접종후기
- 백준10718자바
- cs지식
- 화이자백신후기
- 포장방스터디
- 자바토글버튼
- 자바
- 백준구구단
- 코로나백신
- 화이자미열
- 자바화면구현
- 컴퓨터공부
- 백준고양이
- 백준10171
- 백준 #백준알고리즘 #백준 Hello World #Hello World
- 백준고양이자바
- 자바컨테이너
- 화이자1일차
- 자바컴포넌트
- 자바공부
- 2739자바
- java
- 백준2739
- 자바이벤트
- 자바조건문
Archives
- Today
- Total
Salted Caramel
[수업 26일차] 21.09.09 Java와 데이터베이스간의 연동, JDBC(Java DataBase Connectivity)-3, 문제풀이 본문
coding/[2021.08.02~2022.01.24] 수업복습
[수업 26일차] 21.09.09 Java와 데이터베이스간의 연동, JDBC(Java DataBase Connectivity)-3, 문제풀이
꽃무늬라떼 2021. 9. 10. 00:27
연결을 닫아주는 코드를 실행해야하는 코드 보다 앞에 써줬을 경우에
insert( ); 메서드에서 연결이 끊어짐 -- > 데이터베이스가
다시 connect( ); 객체를 호출해야한다. 그래서 close 코드를 맞게 작성해야한다.
// getValueAt(세로인덱스(행), 가로인데스(열))
// ==> 원하는 위치(행, 열)의 데이터를 가져오는 메서드.
pstmt.setString(1, (String)model.getValueAt(row, 0));
이 부분 이해하기
17_DEPT
sist
DEPT

package sist;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class DEPT extends JFrame {
/*
* - DefaultTableModel :테이블을 만들고 난 후 데이터를 넣고
* 추가, 수정, 삭제 시에도 변경이 가능함.
*
*
* - JTable : 일단은 테이블을 만들고 난 후 데이터를 넣으면
* 한번 만든 테이블의 데이터는 변경이 불가능.
* 추가 , 수정, 삭제는 불가능
* 추가, 수정, 삭제 시에는 다시 새로운 객체를 만들어야 함.
*
*/
Connection con = null; //DB와 연결하는 객체
PreparedStatement pstmt = null; // DB와 SQL문을 전송하는 객체
ResultSet rs = null; // SQL문의 실행 결과를 저장하고 있는 객체
DefaultTableModel model;
JTextField jtf1, jtf2, jtf3;
JTable table;
public DEPT() {
setTitle("부서 테이블");
JPanel container1 = new JPanel(); // 상단 컨테이너
JPanel container2 = new JPanel(); // 하단 컨테이너
// 1. 컴포넌트를 만들어 보자.
// 1-1. 상단 컨테이너에 올라갈 컴포넌트를 만들자
JLabel lable1 = new JLabel("부서번호 : ");
jtf1 = new JTextField(2);
JLabel lable2 = new JLabel("부서명 : ");
jtf2 = new JTextField(10);
JLabel lable3 = new JLabel("근무지 : ");
jtf3 = new JTextField(10);
// 1-2. 중앙에 들어갈 컴포넌트를 만들자.
String[] header = {"부서번호", "부서명", "근무지"};
model = new DefaultTableModel(header, 0);
table = new JTable(model);
JScrollPane jsp = new JScrollPane(
table,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
// 1-3. 하단 컨테이너에 올라갈 컴포넌트를 만들어 보자.
JButton jb1 = new JButton("전체 목록");
JButton jb2 = new JButton("부서 추가");
JButton jb3 = new JButton("부서 수정");
JButton jb4 = new JButton("부서 삭제");
// 2. 컨테이너에 컴포넌트를 올려 주어야 한다.
// 2-1. 상단 컨테이너에 1-1 컴포넌트들을 올려 주자.
container1.add(lable1); container1.add(jtf1);
container1.add(lable2); container1.add(jtf2);
container1.add(lable3); container1.add(jtf3);
// 2-2. 하단 컨테이너에 1-3 컴포넌트들을 올려 주자.
container2.add(jb1); container2.add(jb2);
container2.add(jb3); container2.add(jb4);
// 3. 프레임에 컨테이너를 올려 주어야 한다.
add(container1, BorderLayout.NORTH);
add(jsp, BorderLayout.CENTER);
add(container2, BorderLayout.SOUTH);
setBounds(200, 200, 500, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
// 4. 이벤트 처리
// 전체목록(jb1) 버튼을 클릭했을 때 dept 테이블의
// 전체 리스트를 jTable에 출력을 해 주면 됨.
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
connect(); // 데이터베이스 연동 메서드 호출.
model.setRowCount(0); // 전체 테이블의 화면을 지워주는 메서드.
select(); // DB에서 전체 내역을 조회하는 메서드 호출.
}
});
// 부서추가(jb2) 버튼을 클릭했을 때 각각의 텍스트 필드에 입력된 정보를
// DB에 추가한 후 추가된 전체리스트를 JTable에 다시 보여주면 됨
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
connect(); //데이터베이스 연동 메서드 호출
insert(); // 데이터베이스에 저장하는 메서드 호출
//입력 텍스트 핑드 영역 초기화
jtf1.setText(null);jtf2.setText(null);
jtf3.setText(null);jtf1.requestFocus();
model.setRowCount(0); // 전체 테이블 화면을 지우는 메서드
select(); // DB에서 전체 내역을 조회하는 메서드 호출.
}
});
// 부서수정(jb3) 버튼을 눌렀을 때 각각의 텍스트 필드에 입력된 정보를
// 바탕으로 DB에 수정한 후, dept 테이블 전체 리스트를 JTable에 다시 보여주면됨.
jb3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
connect(); //데이터베이스 연동 메서드 호출
update(); // 데이터베이스에 수정하는 메서드 호출
//입력 텍스트 필드 영역 초기화
jtf1.setText(null);jtf2.setText(null);
jtf3.setText(null);jtf1.requestFocus();
model.setRowCount(0); // 전체 테이블 화면을 지우는 메서드
select(); // DB에서 전체 내역을 조회하는 메서드 호출.
}
});
// JTable의 특정 행을 클릭한 산태로 부서삭제(jb4) 버튼을 눌렀을 때
// 클릭된 행을 DB에서 삭제시키는 작업 후, dept 테이블의 전체 리스트를
// JTable에 다시 보여주면 됨.
jb4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int result = JOptionPane.showConfirmDialog
(null, "정말로 삭제하시겠습니까?", "확인",
JOptionPane.YES_NO_OPTION);
if(result == JOptionPane.CLOSED_OPTION) {
JOptionPane.showMessageDialog(null, "취소를 클릭하였습니다");
}else if(result == JOptionPane.YES_OPTION) {
connect();
delete();
}
}
});
}
// DB를 연동하는 메서드.
void connect() {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "web";
String password = "1234";
try {
//1. 접속할 오라클 데이터베이스 드라이버를 메모리에 올리자 - 동적 작업
Class.forName(driver);
//2. 오라클 데이터베이스와 연결을 하자.
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} // connet() 메서드 end
// dept 테이블의 전체 내역을 조회하는 메서드.
void select() {
try {
// 1. 데이터 베이스에 SQL문을 전송하기 위한 쿼리문 작성.
String sql = "select * from dept order by deptno";
// 2. 쿼리문을 전송을 하자.
pstmt = con.prepareStatement(sql);
// 3. 실제로 DB 상에서 쿼리문을 실행하도록 하자.
rs = pstmt.executeQuery();
// 4. 레코드 수만큼 반복하여 데이터를 추출하여 model 객체에 저장해 주자.
while(rs.next()) {
int deptno = rs.getInt("deptno");
String dname = rs.getString("dname");
String loc = rs.getString("loc");
Object[] data = {deptno,dname,loc};
//저장한 한 개의 레코드(data)를 model에 추가해 주면 됨.
model.addRow(data);
}
// 5. 연결되어있던 객체 닫아주기
rs.close();pstmt.close(); con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} // select() 메서드 end
// dept 테이블에 부서 정보를 추가하는 메서드.
void insert() {
try {
// 1. 데이터베이스에 SQL문을 전송하기 위한 쿼리문 작성.
String sql = "insert into dept values(?,?,?)";
// 2. 쿼리문을 전송하자.
pstmt = con.prepareStatement(sql);
//int deptno = Integer.parseInt(jtf1.getText());
//String dname = jtf2.getText();
//String location = jtf3.getText();
pstmt.setInt(1, Integer.parseInt(jtf1.getText()));
pstmt.setString(2, jtf2.getText());
pstmt.setString(3, jtf3.getText());
// 3. 실제로 DB상에서 쿼리문을 실행하도록 하자.
int res = pstmt.executeUpdate();
if(res > 0) {
JOptionPane.showMessageDialog(null, "부서 추가 성공");
}else {
JOptionPane.showMessageDialog(null, "부서 추가 실패");
}
// 4. 연결되어 있던 객체 닫기
pstmt.close(); //con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} //insert() 메서드 end
// dept테이블의 특정 레코드를 수정하는 메서드
void update( ) {
//1. 데이터베이스에 SQL문을 전송하기 위한 쿼리문 작성.
String sql = "update dept set dname = ?, loc = ?"
+"where deptno = ?";
try {
//1. 데이터베이스에 SQL문을 전송하기 위한 쿼리문 작성.
String sql1 = "update dept set dname = ?, loc = ? where deptno = ?";
//2.쿼리문을 전송하다.
pstmt = con.prepareStatement(sql1);
pstmt.setString(1, jtf2.getText());
pstmt.setString(2, jtf3.getText());
pstmt.setInt(3, Integer.parseInt(jtf1.getText()));
// 3. 실제로 DB상에서 쿼리문을 실행하도록 하자.
int res = pstmt.executeUpdate();
if(res > 0) {
JOptionPane.showMessageDialog(null, "부서 정보 수정 성공");
}else {
JOptionPane.showMessageDialog(null, "부서 정보 수정 실패");
}
// 4. 연결되어 있던 객체 종료
pstmt.close(); //con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} //update() 메서드 end
// dept 테이블에서 특정 행을 삭제시키는 메서드.
void delete() {
//1. 데이터베이스에 SQL문을 전송하기 위한 쿼리문 작성,
String sql ="delete from dept where deptno = ?";
//2. 쿼리문을 전송하자.
try {
//1. 데이터베이스에 SQL문을 전송하기 위한 쿼리문 작성,
String sql1 ="delete from dept where deptno = ?";
//2. 쿼리문을 전송하자.
pstmt = con.prepareStatement(sql1);
//JTable에서 선택된 셀의 row값을 int형으로 반환해 주는 메서드.
int row = table.getSelectedRow();
// getValueAt(세로인덱스(행), 가로인데스(열))
// ==> 원하는 위치(행, 열)의 데이터를 가져오는 메서드.
pstmt.setInt(1,(int)model.getValueAt(row, 0));
// 3. 실제로 DB상에서 쿼리문을 실행하도록 하자.
int res = pstmt.executeUpdate();
if(res > 0) {
JOptionPane.showMessageDialog(null, "부서 삭제 성공");
}else {
JOptionPane.showMessageDialog(null, "부서 삭제 실패");
}
model.removeRow(row); // 테이블 상의 한 줄 삭제.
// 4. 연결되어 있던 객체 종료.
pstmt.close();con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
new DEPT();
}
}
18_STUDENT
sist
STUDENT


package sist;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class STUDENT extends JFrame{
Connection con = null; // DB와 연결하는 객체
PreparedStatement pstmt = null; // SQL문을 DB에 전송하는 객체
ResultSet rs = null; // SQL문의 결과를 가지고 있는 객체
DefaultTableModel model;
JTextField jtf1, jtf2,jtf3,jtf4,jtf5,jtf6,jtf7;
JTable table;
public STUDENT() {
setTitle("학생 테이블");
JPanel container1 = new JPanel(); //상단-1 컨테이너
JPanel container2 = new JPanel(); //상단-2 컨테이너
JPanel container3 = new JPanel(); //하단 컨테이너
// 1. 컴포넌트를 만들어보자.
// 1-1. 상단-1 컨테이너에 올려질 컴포넌트들을 만들어 보자.
JLabel lable1 = new JLabel("학번 : ");
jtf1 = new JTextField(10);
JLabel lable2 = new JLabel("이름 : ");
jtf2 = new JTextField(5);
JLabel lable3 = new JLabel("학과 : ");
jtf3 = new JTextField(15);
// 1-2. 상단-2 컨테이너에 올려질 컴포넌트들을 만들어 보자.
JLabel lable4 = new JLabel("학년 : ");
jtf4 = new JTextField(1);
JLabel lable5 = new JLabel("나이 : ");
jtf5 = new JTextField(2);
JLabel lable6 = new JLabel("연락처 : ");
jtf6 = new JTextField(11);
JLabel lable7 = new JLabel("주소 : ");
jtf7 = new JTextField(20);
// 1-2. 중앙에 들어갈 컴포넌트를 만들자.
String[] header =
{"학번", "이름","학과","학년","나이","연락처","주소", "등록일"};
model = new DefaultTableModel(header,0);
table = new JTable(model);
JScrollPane jsp = new JScrollPane(
table,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
pack();
JButton jb1 = new JButton("전체 목록");
JButton jb2 = new JButton("학생 추가");
JButton jb3 = new JButton("학생 수정");
JButton jb4 = new JButton("학생 삭제");
// 2. 컨테이너에 컴포넌트를 올려 주어야 한다.
// 2-1. 상단 컨테이너에 1-1 컴포넌트들을 올려 주자.
container1.add(lable1);container1.add(jtf1);
container1.add(lable2);container1.add(jtf2);
container1.add(lable3);container1.add(jtf3);
// 2-2. 상단-2 컨테이너에 1-2 컴포넌트를 올리자.
container2.add(lable4);container2.add(jtf4);
container2.add(lable5);container2.add(jtf5);
container2.add(lable6);container2.add(jtf6);
container2.add(lable7);container2.add(jtf7);
// 2-3. 하단 컨테이너에 1-4 컴포넌트를 올리자
container3.add(jb1); container3.add(jb2);
container3.add(jb3); container3.add(jb4);
// 컨테이너를 하나 더 만들어서 기존의 컨테이너들을 새로운 컨테이너에 올려 주자.
JPanel group = new JPanel(new BorderLayout());
group.add(container2,BorderLayout.NORTH);
group.add(jsp,BorderLayout.CENTER);
group.add(container3,BorderLayout.SOUTH);
// 3. 프레임에 컨테이너를 올려 주어야 한다.
add(container1,BorderLayout.NORTH);
add(group,BorderLayout.CENTER);
setBounds(200, 200, 700, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
// 4. 이벤트 처리
// 전체목록(jb1) 버튼을 클릭했을 때 student 테이블의
// 전체 리스트를 jTable에 출력을 해 주면 됨.
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
connect(); // 데이터베이스 연동 메서드 호출
model.setRowCount(0); // 전체 테이블의 화면을 지워주는 메서드
select(); // DB에서 전체 내역을 조회하는 메서드 호출.
}
});
// 학생추가(jb2) 버튼을 클릭했을 때 각각의 텍스트 필드에 입력된 정보를
// DB에 추가한 후 추가된 전체리스트를 JTable에 다시 보여주면 됨
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
connect(); // 데이터베이스 연동 메서드 호출
insert(); // 데이터베이스에 저장하는 메서드 호출
// 입력 텍스트 필드 영역 초기화
jtf1.setText(null);jtf2.setText(null);
jtf3.setText(null);jtf4.setText(null);
jtf5.setText(null);jtf6.setText(null);
jtf7.setText(null);
jtf1.requestFocus();
model.setRowCount(0); // 전체 테이블 화면을 지우는 메서드
select(); // (지웠다가 다시 호출) DB에서 전체 내역을 조회하는 메서드 호출.
}
});
// 학생정보수정(jb3) 버튼을 클릭했을 때 각각의 텍스트 필드에 입력된 정보를
// DB에 추가한 후 추가된 전체리스트를 JTable에 다시 보여주면 됨
jb3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
connect(); // 데이터베이스 연동 메서드 호출
update(); // 데이터베이스에 수정하는 메서드 호출
// 입력 텍스트 필드 영역 초기화
jtf1.setText(null);jtf2.setText(null);
jtf3.setText(null);jtf4.setText(null);
jtf5.setText(null);jtf6.setText(null);
jtf7.setText(null);
jtf1.requestFocus();
model.setRowCount(0); // 전체 테이블 화면을 지우는 메서드
select(); // DB에서 전체 내역을 조회하는 메서드 호출
}
});
// JTable의 특정 행을 클릭한 산태로 학생삭제(jb4) 버튼을 눌렀을 때
// 클릭된 행을 DB에서 삭제시키는 작업 후, student 테이블의 전체 리스트를
// JTable에 다시 보여주면 됨.
jb4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int result = JOptionPane.showConfirmDialog
(null, "정말로 삭제하시겠습니까?", "확인",
JOptionPane.YES_NO_OPTION);
if(result == JOptionPane.CLOSED_OPTION) {
JOptionPane.showMessageDialog(null, "취소를 클릭하였습니다");
}else if(result == JOptionPane.YES_OPTION) {
connect();
delete();
}else {
JOptionPane.showMessageDialog(null, "취소 버튼을 누르셨습니다.");
}
}
});
}
// DB를 연동하는 메서드
void connect() {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "web";
String password = "1234";
try {
//1. 접속할 오라클 데이터베이스 드라이버를 메모리에 올리자 - 동적 작업
Class.forName(driver);
// 2. 오라클 데이터베이스와 연결을 하자.
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} // connet() 메서드 end
// student 테이블의 전체 내역을 조회하는 메서드.
void select() {
try {
//1. 데이터 베이스에 SQL문을 전송하기 위한 쿼리문 작성.
String sql = "select * from student order by hakbun";
// 2. 쿼리문을 전송을 하자.
pstmt = con.prepareStatement(sql);
// 3. 실제로 DB 상에서 쿼리문을 실행하도록 하자.
rs = pstmt.executeQuery();
// 4. 레코드 수만큼 반복하여 데이터를 추출하여 model 객체에 저장해 주자.
while(rs.next()) {
String hakbun = rs.getString("hakbun");
String name = rs.getString("name");
String major = rs.getString("major");
int year = rs.getInt("year");
int age = rs.getInt("age");
String phone = rs.getString("phone");
String addr = rs.getString("addr");
String regdate = rs.getString("regdate").substring(0, 10);
Object[] date = {hakbun,name,major,year,age,phone,addr};
// 저장한 한 개의 레코드(data)를 model에 추가해 주면 됨.
model.addRow(date);
}
// 5.연결되어 있던 객체 닫아주기
rs.close();pstmt.close(); con.close();
} catch(SQLException e) {
e.printStackTrace();
}
} //select() 메서드 end
//student 테이블에 부서 정보를 추가하는 메서드
void insert() {
try {
// 1. 데이터베이스에 SQL문을 전송하기 위한 쿼리문 작성.
String sql = "insert into student values(?,?,?,?,?,sysdate,?,?)";
// 2. 쿼리문을 전송하자
pstmt = con.prepareStatement(sql);
pstmt.setString(1, jtf1.getText());
pstmt.setString(2, jtf2.getText());
pstmt.setString(3, jtf3.getText());
pstmt.setInt(4, Integer.parseInt(jtf4.getText()));
pstmt.setString(5, jtf6.getText());
pstmt.setString(6, jtf7.getText());
pstmt.setInt(7, Integer.parseInt(jtf5.getText()));
// 3. 실제로 DB상에서 쿼리문을 실행하도록 하자.
int res = pstmt.executeUpdate();
if(res > 0) {
JOptionPane.showMessageDialog(null, "학생 추가 성공");
}else {
JOptionPane.showMessageDialog(null, "학생 추가 실패");
}
// 4. 연결되어 있던 객체 닫기
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} // insert() 메서드 end
//student 테이블의 특정 레코드를 수정하는 메서드
void update( ) {
try {
//1. 데이터베이스에 SQL문을 전송하기 위한 쿼리문 작성.
String sql = "update student set year = ?, age = ?, phone = ?, addr =? where hakbun = ?";
//2.쿼리문을 전송하다.
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(jtf4.getText()));
pstmt.setInt(2, Integer.parseInt(jtf5.getText()));
pstmt.setString(3, jtf6.getText());
pstmt.setString(4, jtf7.getText());
pstmt.setString(5, jtf1.getText());
// 3. 실제로 DB상에서 쿼리문을 실행하도록 하자.
int res = pstmt.executeUpdate();
if(res > 0) {
JOptionPane.showMessageDialog(null, "학생 정보 수정 성공");
}else {
JOptionPane.showMessageDialog(null, "학생 정보 수정 실패");
}
// 4. 연결되어 있던 객체 종료
pstmt.close(); //con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} //update() 메서드 end
//student 테이블에서 특정 행을 삭제시키는 메서드
void delete() {
try {
//1. 데이터베이스에 SQL문을 전송하기 위한 쿼리문 작성,
String sql = "delete from student where hakbun = ?";
//2. 쿼리문을 전송하자.
pstmt = con.prepareStatement(sql);
//JTable에서 선택된 셀의 row값을 int형으로 반환해 주는 메서드.
int row = table.getSelectedRow();
// getValueAt(세로인덱스(행), 가로인데스(열))
// ==> 원하는 위치(행, 열)의 데이터를 가져오는 메서드.
pstmt.setString(1, (String)model.getValueAt(row, 0));
// 3. 실제로 DB상에서 쿼리문을 실행하도록 하자.
int res = pstmt.executeUpdate();
if(res > 0) {
JOptionPane.showMessageDialog(null, "학생 삭제 성공");
}else {
JOptionPane.showMessageDialog(null, "학생 삭제 실패");
}
model.removeRow(row); //테이블 상의 한 줄 삭제/
// 4. 연결되어 있던 객체 종료.
pstmt.close();con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
new STUDENT();
}
}
'coding > [2021.08.02~2022.01.24] 수업복습' 카테고리의 다른 글
21.09.17 (0) | 2021.09.17 |
---|---|
[수업 27일차] 21.09.10 Java와 데이터베이스간의 연동, JDBC(Java DataBase Connectivity)-4, 문제풀이 (0) | 2021.09.13 |
[수업 25일차] 21.09.08 Java와 데이터베이스간의 연동, JDBC(Java DataBase Connectivity) (0) | 2021.09.09 |
[수업 24일차-2] 21.09.07 Java와 데이터베이스간의 연동, JDBC(Java DataBase Connectivity) (0) | 2021.09.08 |
[수업 24일차] 21.09.07 SQL DataBase 4 , PL/SQL (0) | 2021.09.08 |