-
(JAVA / JDBC) JDBC로 JAVA와 DB 연결하기 - MysqlJAVA 2021. 7. 26. 17:15
- JDBC로 JAVA와 DB를 연동하는 내용을 공부할 겸 미니 프로젝트를 진행했다. 코드가 길지만 크게
1) JDBC 사용해서 DB 연동
2) JAVA -> DB로의 CRUD 구현
두 파트로 진행해보았다.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204package project;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Scanner;/* // 클래스 배열로 받아서 처리하는 방법도 있다!class user{ // 테이블을 받을 객체int unum;String uname;String phone;String address;user(int unum,String uname,String phone,String address){this.unum=unum;this.uname=uname;this.phone=phone;this.address=address;// System.out.println(uname+"학생 등록완료!");}@Overridepublic String toString() {return "고객정보 [번호: " + unum + ", 이름: " + uname + ", 전화번호: " + phone + ", 주소: " + address + "]";}}*/public class Project {public static void main(String[] args) {Scanner sc = new Scanner(System.in);// JDBC DB 연결String DName="com.mysql.cj.jdbc.Driver";String url="jdbc:mysql://localhost:3306/ohdb";String user="root";String password="0000";Connection conn=null;Statement stmt=null;ResultSet rs=null;// ArrayList<user> data=new ArrayList();try {// JDBC DB 연결Class.forName(DName);conn=DriverManager.getConnection(url, user, password);stmt=conn.createStatement();while(true) {System.out.println("===== 고객 정보 관리 프로그램 =====");System.out.println("1) 고객 정보 추가");System.out.println("2) 고객 정보 변경");System.out.println("3) 고객 정보 삭제");System.out.println("4) 고객 정보 출력");System.out.println("5) 고객 정보 검색");System.out.println("6) 종료");System.out.println("==========================");System.out.print("번호: ");int act = sc.nextInt();// 고객정보 추가if(act == 1) {System.out.println("고객 정보를 추가합니다.");System.out.print("번호를 입력해주세요: ");int unum = sc.nextInt();sc.nextLine();System.out.print("이름을 입력해주세요: ");String name = sc.next();System.out.print("전화번호를 입력해주세요: ");String phone = sc.next();System.out.print("주소를 입력하세요: ");sc.nextLine();String address = sc.nextLine();String sql = "INSERT INTO user values(" + (unum++) + ",'" + name + "','" + phone + "','" + address + "')";// System.out.println(sql);stmt.executeUpdate(sql);}// 고객 정보 변경else if(act == 2) {System.out.println("고객 정보를 변경합니다.");System.out.print("변경하실 고객의 번호를 입력하세요: ");int num = sc.nextInt();System.out.println("1.이름 변경 2.전화번호 변경 3.주소 변경");System.out.print("번호를 입력하세요: ");act = sc.nextInt();String work;if(act == 1) {work = "uname";System.out.print("새 이름 입력: ");}else if(act == 2) {work = "phone";System.out.print("새 번호 입력: ");}else if (act == 3) {work = "address";System.out.print("새 주소 입력: ");}else {System.out.println("잘못된 입력입니다!");continue;}sc.nextLine();String s = sc.nextLine();String sql = "UPDATE user SET " + work + " = '" + s + "' WHERE unum = " + num;// System.out.println(sql);stmt.executeUpdate(sql);}// 고객 정보 삭제else if(act == 3) {System.out.println("고객 정보를 삭제합니다.");System.out.print("삭제하실 고객의 번호를 입력하세요: ");int num = sc.nextInt();String sql = "DELETE FROM user WHERE unum = " + num;stmt.executeUpdate(sql);}// 고객 목록 출력else if(act == 4) {rs=stmt.executeQuery("SELECT * FROM user");System.out.println("고객 정보를 출력합니다.");while(rs.next()) {System.out.print("번호:" + rs.getInt("unum") + " 이름:" + rs.getString("uname") + " 전화번호:" + rs.getString("phone") + " ");System.out.println("주소:" + rs.getString("address"));}}// 고객 정보 검색else if(act == 5) {System.out.println("고객 정보를 검색합니다.");System.out.println("1.고객번호로 검색 2.이름으로 검색 3.핸드폰번호로 검색");System.out.print("번호를 입력하세요: ");act = sc.nextInt();String work;String sql;if(act == 1) {work = "unum";System.out.print("고객 번호 입력: ");int s = sc.nextInt();sql = "SELECT * FROM user WHERE " + work + " = " + s;}else if(act == 2) {work = "uname";System.out.print("이름 입력: ");sc.nextLine();String s = sc.next();sql = "SELECT * FROM user WHERE " + work + " = '" + s + "'";}else if(act == 3) {work = "phone";System.out.print("핸드폰 번호 입력: ");sc.nextLine();String s = sc.next();sql = "SELECT * FROM user WHERE " + work + " = '" + s + "'";}else {System.out.println("잘못된 입력입니다!");continue;}rs=stmt.executeQuery(sql);while(rs.next()) {System.out.print("번호:" + rs.getInt("unum") + " 이름:" + rs.getString("uname") + " 전화번호:" + rs.getString("phone") + " ");System.out.println("주소:" + rs.getString("address"));String uname=rs.getString("uname");String phone=rs.getString("phone");}}// 프로그램 종료else {System.out.println("프로그램을 종료합니다.");break;}}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {rs.close();stmt.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}cs - 실행 결과
'JAVA' 카테고리의 다른 글
(Eclipse) Marketplace가 실행되지 않을 때 해결 방법 (0) 2022.02.07 (JAVA / JDBC) JDBC로 JAVA와 DB 연결하기 - Oracle (0) 2021.07.27 (JAVA) Queue를 이용한 간단한 영화관 대기열 프로그램 만들기 (0) 2021.07.19 (JAVA) Stack 과 Queue 자료구조 (0) 2021.07.19 (JAVA) 다형성과 동적 바인딩 (0) 2021.07.19