ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (JAVA / JDBC) JDBC로 JAVA와 DB 연결하기 - Mysql
    JAVA 2021. 7. 26. 17:15

    - JDBC로 JAVA와 DB를 연동하는 내용을 공부할 겸 미니 프로젝트를 진행했다. 코드가 길지만 크게

    1) JDBC 사용해서 DB 연동

    2) JAVA -> DB로의 CRUD 구현

    두 파트로 진행해보았다.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    package 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+"학생 등록완료!");
        }
        @Override
        public 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 block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                try {
                    rs.close();
                    stmt.close();
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
     
    cs

    - 실행 결과

     

    두 명의 고객 추가
    출력 정보
    정보 변경
    삭제-결과
    검색-종료

     

    DB에 저장된 모습

Designed by Tistory.