자바26일차

달달한스위츠·2024년 3월 11일

자바배우기

목록 보기
26/43

연락처 프로그램 완성
ContactMain06.java

package edu.java.contact06;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.awt.event.ActionEvent;
import javax.swing.JTable;
import javax.swing.JList;
import javax.swing.JTextPane;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;

public class ContactMain06 {

	private JFrame frame;
	private static JTextField textName;
	private static JTextField textPhone;
	private static JTextField textEmail;
	private static JTextField txtIndex;
	private static ContactDAOImple dao; // ContactDAOImple 인스턴스를 저장할 변수
	private static JLabel lblName;
	private static JLabel lblPhone;
	private static JLabel lblEmail;
	private static JTextArea txtAreaInfo;
	private static JTextArea txtAreaLog;

	private static String[] header = { "NO", "이름", "전화번호", "이메일" };
	private static Object[] records = new Object[header.length];
	private static DefaultTableModel model; // 테이블 형태를 만들 변수
	private static JTable table;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {

		try {
			dao = ContactDAOImple.getInstance();
		} catch (Exception e) {

		} // 다형성. 싱글톤 인스턴스 생성

		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ContactMain06 window = new ContactMain06();
					window.frame.setVisible(true);

				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	} // end main()
	/**
	 * Create the application.
	 */
	public ContactMain06() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */

	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 680, 703);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		JLabel lblNewLabel = new JLabel("연락처 프로그램 Version 0.6");
		lblNewLabel.setFont(new Font("굴림", Font.PLAIN, 34));
		lblNewLabel.setBounds(12, 10, 461, 72);
		frame.getContentPane().add(lblNewLabel);

		lblName = new JLabel("이름");
		lblName.setFont(new Font("굴림", Font.PLAIN, 34));
		lblName.setBounds(12, 72, 139, 72);
		frame.getContentPane().add(lblName);

		lblPhone = new JLabel("전화번호");
		lblPhone.setFont(new Font("굴림", Font.PLAIN, 34));
		lblPhone.setBounds(12, 149, 139, 72);
		frame.getContentPane().add(lblPhone);

		lblEmail = new JLabel("이메일");
		lblEmail.setFont(new Font("굴림", Font.PLAIN, 34));
		lblEmail.setBounds(12, 227, 139, 72);
		frame.getContentPane().add(lblEmail);

		textName = new JTextField();
		textName.setBounds(163, 89, 283, 52);
		frame.getContentPane().add(textName);
		textName.setColumns(10);

		textPhone = new JTextField();
		textPhone.setColumns(10);
		textPhone.setBounds(163, 156, 283, 52);
		frame.getContentPane().add(textPhone);

		textEmail = new JTextField();
		textEmail.setColumns(10);
		textEmail.setBounds(163, 228, 283, 52);
		frame.getContentPane().add(textEmail);

		JButton btnInsert = new JButton("등록");
		btnInsert.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				InsertMember();
			}
		});
		btnInsert.setFont(new Font("굴림", Font.BOLD, 24));
		btnInsert.setBounds(12, 294, 103, 52);
		frame.getContentPane().add(btnInsert);

		JButton btnUpdate = new JButton("수정");
		btnUpdate.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				updateMember();
				VTxtAreaLog();
			}
		});
		btnUpdate.setFont(new Font("굴림", Font.BOLD, 24));
		btnUpdate.setBounds(12, 356, 103, 52);
		frame.getContentPane().add(btnUpdate);

		JButton btnDelete = new JButton("삭제");
		btnDelete.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				deleteMamber();
				selectAllContactTable();
				VTxtAreaLog();
			}
		});
		btnDelete.setFont(new Font("굴림", Font.BOLD, 24));
		btnDelete.setBounds(127, 356, 103, 52);
		frame.getContentPane().add(btnDelete);

		JButton btnAllSearch = new JButton("전체검색");
		btnAllSearch.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				VTxtAreaLog();
				selectAllContactTable();
				selectAll();
			}

		});
		btnAllSearch.setFont(new Font("굴림", Font.BOLD, 24));
		btnAllSearch.setBounds(245, 356, 201, 52);
		frame.getContentPane().add(btnAllSearch);

		JButton btnSearch = new JButton("검색");
		btnSearch.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				selectByIndax();
				selectContactTable();
				VTxtAreaLog();
			}

		});
		btnSearch.setFont(new Font("굴림", Font.BOLD, 24));
		btnSearch.setBounds(245, 290, 103, 52);
		frame.getContentPane().add(btnSearch);

		txtIndex = new JTextField();
		txtIndex.setText("번호입력");
		txtIndex.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent e) {
				txtIndex.setText("");
			}
		});
		txtIndex.setToolTipText("");
		txtIndex.setBounds(127, 294, 103, 52);
		frame.getContentPane().add(txtIndex);
		txtIndex.setColumns(10);

		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(12, 418, 434, 99);
		frame.getContentPane().add(scrollPane);

		txtAreaInfo = new JTextArea();
		scrollPane.setViewportView(txtAreaInfo);

		JScrollPane scrollPane_1 = new JScrollPane();
		scrollPane_1.setBounds(12, 527, 434, 104);
		frame.getContentPane().add(scrollPane_1);

		txtAreaLog = new JTextArea();
		scrollPane_1.setViewportView(txtAreaLog);

		JScrollPane scrollPane_2 = new JScrollPane();
		scrollPane_2.setBounds(458, 372, 194, 259);
		frame.getContentPane().add(scrollPane_2);

		// 테이블 초기화
		model = new DefaultTableModel(header, 0) {
			@Override
			public boolean isCellEditable(int row, int column) {
				return false;
			}
		};
		table = new JTable(model);
		table.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				int row = table.getSelectedRow();
				int col = table.getSelectedColumn();
				Object value = table.getValueAt(row, col);
				System.out.println(value);
			}
		});
		table.setFont(new Font("굴림", Font.PLAIN, 15));

		scrollPane_2.setViewportView(table);

	} // end initialize();

	private static void deleteMamber() {
		try {
			System.out.println("검색할 인덱스 입력>");
			String indexst = txtIndex.getText();

			// 문자열을 숫자로 변환
			int index = Integer.parseInt(indexst);

			int count = ((ContactDAOImple) dao).getSize();
			if (index >= 0 && index < count) {
				int result = dao.delete(index);
				if (result == 1) {
					txtAreaLog.setText("연락처 정보 삭제 완료");
					selectAllContactTable();
				}
			} else {
				txtAreaLog.setText("0부터 " + (count - 1) + "까지만 입력하세요.");
			}
		} catch (NumberFormatException | IndexOutOfBoundsException e) {
			txtAreaLog.setText("0 이상의 정수를 입력하세요.");
		}
	} // end deleteMamber()

	private static void updateMember() {
		try {
			System.out.println("인덱스 입력>");
			String indexst = txtIndex.getText();

			// 문자열을 숫자로 변환
			int index = Integer.parseInt(indexst);

			int count = ((ContactDAOImple) dao).getSize();
			if (index >= 0 && index < count) {
				System.out.println("전화번호 입력>");
				String phone = textPhone.getText();

				System.out.println("이메일 입력>");
				String email = textEmail.getText();
				if (phone.equals("") || email.equals("")) {
					txtAreaLog.setText("이름, 전화번호, 이메일을 입력해 주세요." + "\n");
					return; // InsertMember() 종료
				}
				ContactDTO dto = new ContactDTO(index, "", phone, email);
				int result = dao.update(index, dto);
				if (result == 1) {
					txtAreaLog.setText("연락처 정보 수정 완료");
					clearTextFields();
					selectAllContactTable();
				} else {
					txtAreaLog.setText("수정에 실패했습니다." + "\n");

					txtAreaLog.setText("0부터 " + (count - 1) + "까지만 입력하세요.");
				}
			}
		} catch (NumberFormatException | IndexOutOfBoundsException e) {
			txtAreaLog.setText("0 이상의 정수를 입력하세요.");

		}
	} // end updateMember()

	private static void selectByIndax() {

		try {
			System.out.println("검색할 인덱스 입력>");
			String indexst = txtIndex.getText();
			System.out.println(indexst);
			// 문자열을 숫자로 변환
			int index = Integer.parseInt(indexst);
			int count = dao.select().size();

			System.out.println(count);
			if (index >= 0 && index < count) {
				ContactDTO dto = dao.select(index);
				String result = "--- 연락처 " + index + " ---" + "\n" + dto + "\n";
				txtAreaInfo.append(result);

			} else {
				txtAreaLog.setText("0부터 " + (count) + "까지만 입력하세요.");
			}
		} catch (NumberFormatException | IndexOutOfBoundsException e) {
			txtAreaLog.setText("0 이상의 정수를 입력하세요.");
		}
	} // end selectByIndax()

	private static void selectAll() {
//		try {
//			ArrayList<ContactDTO> list = dao.select();
//
//			int count = dao.getCount();
//			for (int i = 0; i < count; i++) {
//				String result = "--- 연락처 " + i + " ---" + "\n" + list.get(i) + "\n";
//				txtAreaInfo.append(result);
//				System.out.println("연락처 정보 [" + i + "]");
//				System.out.println(list.get(i));
//								
//			}
		int size = ((ContactDAOImple) dao).getSize();
		ArrayList<ContactDTO> list = dao.select();
		StringBuffer buffer = new StringBuffer();
		long startTime = System.currentTimeMillis();
		for (int i = 0; i < size; i++) {
			buffer.append("연락처[" + i + "] \n" + list.get(i) + "\n");
		}
		txtAreaInfo.setText(buffer.toString());
		long endTime = System.currentTimeMillis();
		System.out.println("걸린 시간 : " + (endTime - startTime));

//		} catch (Exception e) {
//			e.printStackTrace();
//		}
	} // end selectAll()

	private static void InsertMember() {
		System.out.println("--- 연락처 정보 등록 ---");
		System.out.println("이름 입력>");
		String name = textName.getText();
		System.out.println("전화번호 입력>");
		String phone = textPhone.getText();
		System.out.println("이메일 입력>");
		String email = textEmail.getText();
		System.out.println("등록");
		if (name.equals("") || phone.equals("") || email.equals("")) {
			txtAreaLog.setText("저장할 연락처 정보를 입력하세요.");
			return; // InsertMember() 종료
		}
		ContactDTO dto = new ContactDTO(0, name, phone, email);
		int check = dao.insert(dto);

		if (check == 1) {
			txtAreaLog.setText("연락처를 등록했습니다." + "\n");
			clearTextFields();
		} else {
			txtAreaLog.setText("등록에 실패했습니다." + "\n");
		}
		int count = dao.getSize();
		String result = "등록된 연락처 개수 : " + count + "\n" + "연락처 등록 완료" + "\n";
		txtAreaLog.append(result);
	} // end InsertMember()

	private static void clearTextFields() {
		textName.setText("");
		textPhone.setText("");
		textEmail.setText("");
	}

	private static void VTxtAreaLog() {
		int count = dao.getSize();
		String result = "등록된 연락처 개수 : " + count + "\n";
		txtAreaLog.append(result);
	} // end VTxtAreaLog()

	private static void selectAllContactTable() {
		ArrayList<ContactDTO> list = dao.select();
		System.out.println(list);
		model.setRowCount(0);
		System.out.println(list.size());
		for (int i = 0; i < list.size(); i++) {

			records[0] = i + 1;
			records[1] = list.get(i).getName();
			records[2] = list.get(i).getPhone();
			records[3] = list.get(i).getEmail();
			model.addRow(records);
		}

	} // end selectAllContactTable()
	
	private void selectContactTable() {
		model.setRowCount(0);
		try {
			System.out.println("검색할 인덱스 입력>");
			String indexst = txtIndex.getText();
			System.out.println(indexst);
			// 문자열을 숫자로 변환
			int index = Integer.parseInt(indexst);
			int count = ((ContactDAOImple) dao).getSize();
			
			System.out.println(count);
			if (index >= 0 && index < count) {
				ContactDTO dto = dao.select(index);
				records[0] = dto.getIndex();
				records[1] = dto.getName();
				records[2] = dto.getPhone();
				records[3] = dto.getEmail();
				model.addRow(records);
				
			} else {
				txtAreaLog.setText("0부터 " + (count - 1) + "까지만 입력하세요.");
			}
		} catch (NumberFormatException | IndexOutOfBoundsException e) {
			txtAreaLog.setText("0 이상의 정수를 입력하세요.");
		}

	} // end selectContactTable()

}// end ContactMain05

OracleQuery.java

package edu.java.contact06;

// JDBC에서 DB 접속에 사용될 상수들, SQL 문장들 정의
public interface OracleQuery {
	public static final String URL = 
			"jdbc:oracle:thin:@localhost:1521:xe"; // 접속할 오라클 DB 경로
	public static final String USER = "scott";
	public static final String PASSWORD = "tiger";
	
	public static final String TABLE_NAME = "EX_CONTACT";
	public static final String COL_CONTACT_ID = "CONTACT_ID";
	public static final String COL_NAME = "NAME";
	public static final String COL_PHONE = "PHONE";
	public static final String COL_EMAIL = "EMAIL";
	
	// 데이터 등록
	// INSERT INTO EX_CONTACT
	// VALUES (CONTACT_SEQ.nextval, ?, ?, ?);
	public static final String SQL_INSERT = "INSERT INTO " + TABLE_NAME 
								+ " VALUES (CONTACT_SEQ.nextval, ?, ?, ?)";

	// SELECT * FROM EX_CONTACT WHERE CONTACT_ID = ?;
	public static final String SQL_SELECT_BY_CONTACT_ID =
			"SELECT * FROM " + TABLE_NAME + 
			" WHERE " + COL_CONTACT_ID + " = ?";
	
	
	public static final String SQL_SELECT_ALL = 
			"SELECT * FROM " + TABLE_NAME + " ORDER BY " + COL_CONTACT_ID;
	
	
	// 데이터 수정
	// UPDATE EX_CONTACT
	// SET NAME = ?, PHONE = ?, EMAIL = ?
	// WHERE CONTACT_ID = ?
	public static final String SQL_UPDATE = 
			"UPDATE " + TABLE_NAME + " SET " + 
					COL_NAME + " = ? , " +
					COL_PHONE + " = ? , " +
					COL_EMAIL + " = ? " +
					"WHERE " + COL_CONTACT_ID + " = ?";
	
	// 데이터 삭제
	// DELETE EX_CONTACT WHERE CONTACT_ID = ?
	public static final String SQL_DELETE = 
			"DELETE " + TABLE_NAME + " WHERE " + COL_CONTACT_ID + " = ?";

	
} // end OracleQuery

ContactDTO.java

package edu.java.contact06;

import java.io.Serializable;

public class ContactDTO implements Serializable{
	// 멤버 변수(필드, 프로퍼티)
	private int index;
	private String name; // 이름
	private String phone; // 연락처
	private String email; // 이메일

	public ContactDTO() {
		super();
		// TODO Auto-generated constructor stub
	}

	public ContactDTO(int index, String name, String phone, String email) {
		super();
		this.index = index;
		this.name = name;
		this.phone = phone;
		this.email = email;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getPhone() {
		return phone;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
	public int getIndex() {
		return index;
	}

	public void setIndex(int index) {
		this.index = index;
	}

	@Override
	public String toString() {
		return "Contact [NO = " + index + ", name = "+ name +", phone = " + phone + ", email = " + email + "]";
	}

}

ContactDAO.java

package edu.java.contact06;

import java.util.ArrayList;

public interface ContactDAO {
	// 연락처 정보 등록
	public abstract int insert(ContactDTO dto);

	// 연락처 정보 전체 검색
	public abstract ArrayList<ContactDTO> select();
	
	// 연락처 정보 인덱스 검색
	public abstract ContactDTO select(int index);

	// 연락처 정보 인덱스 수정
	public abstract int update(int index, ContactDTO dto);
	
	// 연락처 삭제 인덱스
	public abstract int delete(int index);

	
} // end ContactDAO

ContactDAOImple.java

package edu.java.contact06;

import java.sql.*;
import java.util.*;

import oracle.jdbc.driver.OracleDriver;

public class ContactDAOImple implements ContactDAO, OracleQuery {

	// 1. private static 자기 자신 타입의 변수 선언
	private static ContactDAOImple instance = null;

	// 2. private 생성자
	private ContactDAOImple() {
	}

	// 3. public static 메소드 - 인스턴스를 리턴하는 메소드 구현
	public static ContactDAOImple getInstance() {
		if (instance == null) {
			instance = new ContactDAOImple();
		}
		return instance;
	}

	// 전체 검색 데이터 list에서 size를 리턴
	public int getSize() {
		return select().size();
	}

	@Override
	public int insert(ContactDTO dto) {
		int result = 0;
		Connection conn = null;
		PreparedStatement pstmt = null;

		System.out.println("insert()"); // 로그 찍기
		System.out.println("dto = " + dto);
		System.out.println("JDBC 5 - 입력받은 데이터를 쿼리에 적용하여 insert");
		try {
			// 2. JDBC 드라이버를 메모리에 로드
			DriverManager.registerDriver(new OracleDriver());
			System.out.println("드라이버 로드 성공");

			// 4. DB와 Connection(연결)을 맺음
			conn = DriverManager.getConnection(URL, USER, PASSWORD);
			System.out.println("DB 연결 성공");

			// 5. Connection 객체를 사용하여 Statement 객체를 생성
			pstmt = conn.prepareStatement(SQL_INSERT);

			// 6. SQL 문장 완성 = SQL_INSERT 쿼리의 ?를 채워주는 코드
			pstmt.setString(1, dto.getName());
			pstmt.setString(2, dto.getPhone());
			pstmt.setString(3, dto.getEmail());
			// SQL 쿼리의 ? 순서와 parameterIndex의 값을 동일하게 지정
			// 예시) ?가 첫 번째이면 parameterIndex = 1

			// setInt() : DB의 Number 타입
			// setString() : DB의 varchar, varchar2 타입
			// setFloat() : DB의 Float 타입
			// setDate() : DB의 Date 타입

			// 7. SQL 문장 실행(DB 서버로 SQL 전송)
			result = pstmt.executeUpdate();

			// 8. DB 서버가 보낸 경과 확인/처리
			System.out.println(result + "행이 삽입되었습니다.");

			System.out.println("데이터 저장 완료");

		} catch (Exception e) {
			e.toString();
		} finally {
			try {
				conn.close();
				pstmt.close();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}

		return result;
	} // end insert

	@Override
	public ArrayList<ContactDTO> select() {
		ArrayList<ContactDTO> list = new ArrayList<>();
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null; // select query 결과 저장할 클래스

		try {
			// 2. JDBC 드라이버를 메모리에 로드
			DriverManager.registerDriver(new OracleDriver());
			System.out.println("드라이버 로드 성공");

			// 4. DB와 Connection(연결)을 맺음
			conn = DriverManager.getConnection(URL, USER, PASSWORD);
			System.out.println("DB 연결 성공");

			pstmt = conn.prepareStatement(SQL_SELECT_ALL);

			rs = pstmt.executeQuery();

			while (rs.next()) {
				int contactId = rs.getInt(1); // COMTACT_ID 컬럼
				String name = rs.getString(2); // NAME 컬럼
				String phone = rs.getString(3); // PHONE 컬럼
				String email = rs.getString(4); // EMAIL 컬럼

				ContactDTO dto = new ContactDTO(contactId, name, phone, email);
//						System.out.println(vo);
				list.add(dto);
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				conn.close();
				pstmt.close();
				rs.close();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return list;
	}

	@Override
	public ContactDTO select(int contactId) {
		ContactDTO dto = new ContactDTO();
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null; // select query 결과 저장할 클래스
		try {
			// 2. JDBC 드라이버를 메모리에 로드
			DriverManager.registerDriver(new OracleDriver());
			System.out.println("드라이버 로드 성공");

			// 4. DB와 Connection(연결)을 맺음
			conn = DriverManager.getConnection(URL, USER, PASSWORD);
			System.out.println("DB 연결 성공");

			pstmt = conn.prepareStatement(SQL_SELECT_BY_CONTACT_ID);

			pstmt.setInt(1, contactId);

			rs = pstmt.executeQuery();

			if (rs.next()) {
				contactId = rs.getInt(1); // CONTACT_ID 컬럼
				String name = rs.getString(2); // NAME 컬럼
				String phone = rs.getString(3); // PHONE 컬럼
				String email = rs.getString(4); // EMAIL 컬럼

				dto = new ContactDTO(contactId, name, phone, email);
//						System.out.println(vo);
				return dto;
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				conn.close();
				pstmt.close();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return dto;
	}

	@Override
	public int update(int contactId, ContactDTO dto) {
		Connection conn = null;
		PreparedStatement pstmt = null;

		try {
			// 2. JDBC 드라이버를 메모리에 로드
			DriverManager.registerDriver(new OracleDriver());
			System.out.println("드라이버 로드 성공");

			// 4. DB와 Connection(연결)을 맺음
			conn = DriverManager.getConnection(URL, USER, PASSWORD);
			System.out.println("DB 연결 성공");

			pstmt = conn.prepareStatement(SQL_UPDATE);

			// 6. SQL 문장 완성 = SQL_INSERT 쿼리의 ?를 채워주는 코드
			pstmt.setString(1, dto.getName());
			pstmt.setString(2, dto.getPhone());
			pstmt.setString(3, dto.getEmail());
			pstmt.setInt(4, contactId);
			// 7. SQL 문장 실행(DB 서버로 SQL 전송)
			int result = pstmt.executeUpdate();

			// 8. DB 서버가 보낸 경과 확인/처리
			System.out.println(result + "행이 수정되었습니다.");
		} catch (

		SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				conn.close();
				pstmt.close();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return 1;
	}

	@Override
	public int delete(int contactId) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		try {
			// 2. JDBC 드라이버를 메모리에 로드
			DriverManager.registerDriver(new OracleDriver());
			System.out.println("드라이버 로드 성공");

			// 4. DB와 Connection(연결)을 맺음
			conn = DriverManager.getConnection(URL, USER, PASSWORD);
			System.out.println("DB 연결 성공");

			pstmt = conn.prepareStatement(SQL_DELETE);

			pstmt.setInt(1, contactId);
			// 7. SQL 문장 실행(DB 서버로 SQL 전송)
			int result = pstmt.executeUpdate();

			// 8. DB 서버가 보낸 경과 확인/처리
			System.out.println(result + "행이 수정되었습니다.");
		} catch (SQLException e) {
		} finally {
			try {
				conn.close();
				pstmt.close();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		return 1;
	}
}

0개의 댓글