[ java ] MVC - 학생관리 프로그램 - jdbc 연동 - 학생등록, 전체조회 , 특정학생조회, 학생정보수정, 학생삭제, 종료 > java

본문 바로가기
사이트 내 전체검색

java

[ java ] MVC - 학생관리 프로그램 - jdbc 연동 - 학생등록, 전체조회 , 특정학생조회, 학생정보수정, 학생삭제, 종료

페이지 정보

작성자 웹지기 댓글 2건 조회 6,026회 작성일 20-12-24 17:26

본문

MVC - 학생관리 프로그램 - jdbc 연동 - 학생등록, 전체조회 , 특정학생조회, 학생정보수정, 학생삭제, 종료

VO(VTO) java와 VAO는 댓글에 추가

StudentMain.java -----------------

package com.VO;


import java.util.ArrayList;

import java.util.Scanner;


public class StudentMain {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        

        //switch 에서는 변수가 공유 되므로 switch문 안에서 변수 선언하지 않고 상단에서 선언한다.

        int menu = 0;

        int student_num = 0;

        String name = "";

        int age = 0;

        String phone = "";

        String email = "";

        String search = "";

        StudentDAO dao = null;

        StudentVO vo  = null;

        boolean result = false;

        

        System.out.println("===============SMHRD학생관리프로그램===============");

        while(true) {

            System.out.println("1.학생추가 2.전체명단조회 3.특정학생조회 4.학생정보수정 5.학생삭제 6.프로그램종료");

            System.out.print("메뉴 선택 >> ");

            menu = sc.nextInt();

            

            

            switch(menu) {

                case 1 : //학생등록

                    System.out.println(menu+"번 선택");

                    System.out.println("등록할 학생의 정보를 입력하시오.");

                    System.out.print("이름 : ");

                    name = sc.next();

                    System.out.print("나이 : ");

                    age = sc.nextInt();

                    System.out.print("전화번호 : ");

                    phone = sc.next();

                    System.out.print("이메일 : ");

                    email = sc.next();

                    

                    dao = new StudentDAO();

                    result = dao.insertStd(name, age, phone, email);

                    if(result ==true) {

                        System.out.println("학생등록 성공");

                    } else {

                        System.out.println("학생등록 실팽");

                    }

                    

                    System.out.println();

                    break;

                case 2 : //전체학생 조회

                    System.out.println(menu+"번 선택");

                    //전체 학생 조회

                    System.out.println("===============SMHRD학생목록===============");

                    


                    dao = new StudentDAO();

                    ArrayList<StudentVO> al = dao.selectStd();

                    System.out.print("고유번호\t");

                    System.out.print("이름\t");

                    System.out.print("나이\t");

                    System.out.print("전번\t\t");

                    System.out.print("이메일\t");

                    System.out.println();


                    for(int i=0; i<al.size(); i++) {

                        vo = al.get(i);

                        System.out.print(vo.getStudent_num()+"\t");

                        System.out.print(vo.getName()+"\t");

                        System.out.print(vo.getAge()+"\t");

                        System.out.print(vo.getPhone()+"\t\t");

                        System.out.print(vo.getEmail()+"\t");

                        System.out.println();

                    }

                    

                    System.out.println();

                    break;

                case 3 : //특정학생조회

                    System.out.println(menu+"번 선택");

                    System.out.print("학생이름 입력 : ");

                    search = sc.next();

                    System.out.println("=============== "+search+" ===============");

                    

                    dao = new StudentDAO();

                    vo = dao.oneSelectStd(search);

                    if(vo.getStudent_num() > 0) {

                        System.out.print(vo.getStudent_num()+"\t");

                        System.out.print(vo.getName()+"\t");

                        System.out.print(vo.getAge()+"\t");

                        System.out.print(vo.getPhone()+"\t");

                        System.out.print(vo.getEmail()+"\t");

                        System.out.println();

                    } else {

                        System.out.println("등록된 정보가 없습니다.");

                    }

                    System.out.println("=============== ======== ===============");

                    System.out.println();

                    break;

                case 4 : //학생정보수정

                    System.out.println(menu+"번 선택");

                        

                    System.out.print("변경할 학생이름 : ");

                    search = sc.next();

                    

                    dao = new StudentDAO();

                    vo = dao.oneSelectStd(search);

                    

                    if(vo.getStudent_num() > 0) {


                        student_num = vo.getStudent_num();

                        name = vo.getName();

                        age = vo.getAge();

                        phone = vo.getPhone();

                        email = vo.getEmail();


                        //뭘 변경할건지 물어볼꺼야.

                        System.out.print("변경하실 내용 : 선택 [1]이름, [2]나이, [3]연락처, [4]이메일, [5]전체변경 :");

                        int sel = sc.nextInt();

                        if(sel == 1) {

                            System.out.print("변경할 이름 : ");

                            name = sc.next();

                        } else if(sel == 2) {

                            System.out.print("변경할 나이 : ");

                            age = sc.nextInt();

                        } else if(sel == 3) {

                            System.out.print("변경할 연락처 : ");

                            phone = sc.next();

                        } else if(sel == 4) {

                            System.out.print("변경할 이메일 : ");

                            email = sc.next();

                        } else if(sel == 5) {

                            System.out.print("변경할 이름 : ");

                            name = sc.next();

                            System.out.print("변경할 나이 : ");

                            age = sc.nextInt();

                            System.out.print("변경할 연락처 : ");

                            phone = sc.next();

                            System.out.print("변경할 이메일 : ");

                            email = sc.next();

                        }


                        dao = new StudentDAO();

                        result = dao.updateStd(student_num, name, age, phone, email);

                        if(result ==true) {

                            System.out.println("학생등록 성공");

                        } else {

                            System.out.println("학생등록 실패");

                        }

                    } else {

                        System.out.println("등록된 정보가 없습니다.");

                    }


                    System.out.println();

                    break;

                case 5 : //학생정보삭제

                    System.out.println(menu+"번 선택");

                    

                    System.out.print("삭제할 학생 이름을 입력하세요 : ");

                    search = sc.next();


                    dao = new StudentDAO();

                    vo = dao.oneSelectStd(search);

                    

                    if(vo.getStudent_num() > 0) {

                        student_num = vo.getStudent_num();

                        name = vo.getName();

                        age = vo.getAge();

                        phone = vo.getPhone();

                        email = vo.getEmail();

                        

                        dao = new StudentDAO();

                        result = dao.deleteStd(student_num);

                        if(result ==true) {

                            System.out.println("학생삭제 성공");

                        } else {

                            System.out.println("학생삭제 실패");

                        }

                    } else {

                        System.out.println("등록된 정보가 없습니다.");

                    }

                        

                    System.out.println();

                    break;

                case 6 :  //프로그램 종료

                    System.out.println(menu+"번 선택");

                    

                    System.out.println();

                    break;

            }

            

            if(menu == 6) {

                System.out.println("프로그램종료");

                break;

            }

        }

        sc.close();

    }

 

}

추천0 비추천0

댓글목록

웹지기님의 댓글

웹지기 작성일

StudentDAO.java (DAO) ----------------

package com.VO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class StudentDAO {
    //DAO (Data Access Object)
    //데이터베이스 관련 작업전담 클래스
    //등록, 수정, 조회, 삭제 등의 작업을 하는 클래스
    //CRUD ( CREATE, READ, UPDATE, DELETE )  작업
   
    private Connection conn = null;
    private PreparedStatement pst = null;
    private String url = "jdbc:oracle:thin:@localhost:1521:xe";
    private String user = "hr";
    private String password = "hr";
    private int student_num = 0;
    private String name = "";
    private int age = 0;
    private String phone = "";
    private String email = "";
    private String sql = "";
    private boolean result = false;
    private StudentVO vo = null;
    private ResultSet rs = null;
   
    public void connect() {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(url, user, password);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public void close(ResultSet rs) {
        if(rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
   
    public void close(PreparedStatement pst) {
        if(pst != null) {
            try {
                pst.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
   
    public void close(Connection conn) {
        if(conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
   
    //학생등록
    public boolean insertStd(String name, int age, String phone, String email) {
        try {
            connect();
            sql = " INSERT INTO student VALUES (studentSeq.nextval, ?, ?, ?, ?) ";
            pst = conn.prepareStatement(sql);
            pst.setString(1,name);
            pst.setInt(2, age);
            pst.setString(3, phone);
            pst.setString(4, email);
            int cnt = pst.executeUpdate();
            if(cnt > 0) {
                result = true;
            } else {
                result = false;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(pst);
            close(conn);
        }
        return result;
    }
   

   
    public ArrayList<StudentVO> selectStd() {
        ArrayList<StudentVO> al = new ArrayList<StudentVO>();
        try {
            connect();
            sql = " SELECT ROWNUM, A.* FROM student A ORDER BY student_num DESC ";
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            while(rs.next()) {
                //int row = rs.getRow();
                //student_num = rs.getInt("student_num");
                student_num = rs.getInt(2);
                //name = rs.getString("name");
                name = rs.getString(3);
                //age = rs.getInt("age");
                age = rs.getInt(4);
                //phone = rs.getString("phone");
                phone = rs.getString(5);
                //email = rs.getString("email");
                email = rs.getString(6);
               
                StudentVO vo = new StudentVO(student_num, name, age, phone, email);
                al.add(vo);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(rs);
            close(pst);
            close(conn);
        }
        return al;
    }
   
    public StudentVO oneSelectStd(String search) {
        try {
            connect();
            sql = " SELECT * FROM student WHERE name = ? ";
            pst = conn.prepareStatement(sql);
            pst.setString(1, search);
            rs = pst.executeQuery();
            boolean isList = false;
            while(rs.next()) {
                student_num = rs.getInt("student_num");
                name = rs.getString("name");
                age = rs.getInt("age");
                phone = rs.getString("phone");
                email = rs.getString("email");
                vo = new StudentVO(student_num, name, age, phone, email);
                isList = true;
            }
            if(isList == false) {
                vo = new StudentVO();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(rs);
            close(pst);
            close(conn);
        }
        return vo;
    }
   
    public boolean updateStd(int student_num, String name, int age, String phone, String email) {
        try {
            connect();
            sql = " UPDATE student ";
            sql += " SET ";
            sql += " name = ?, ";
            sql += " age = ?, ";
            sql += " phone = ?, ";
            sql += " email = ? ";
            sql += " WHERE student_num = ? ";
            pst = conn.prepareStatement(sql);
           
            pst.setString(1,name);
            pst.setInt(2, age);
            pst.setString(3, phone);
            pst.setString(4, email);
            pst.setInt(5, student_num);
            int cnt = pst.executeUpdate();
            if(cnt > 0) {
                result = true;
            } else {
                result = false;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(pst);
            close(conn);
        }
        return result;
    }
   
    public boolean deleteStd(int student_num) {
        try {
            connect();
            sql = " DELETE FROM student WHERE student_num = ? ";
            pst = conn.prepareStatement(sql);
            pst.setInt(1, student_num);
           
            int cnt = pst.executeUpdate();
            if(cnt > 0) {
                result = true;
            } else {
                result = false;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(pst);
            close(conn);
        }
        return result;
    }
}

웹지기님의 댓글

웹지기 작성일

StudentVO.java(VTO) --------------------

package com.VO;

public class StudentVO {
    private int student_num;
    private String name;
    private int age;
    private String phone;
    private String email;
   
    public StudentVO(int student_num, String name, int age, String phone, String email) {
        super();
        this.student_num = student_num;
        this.name = name;
        this.age = age;
        this.phone = phone;
        this.email = email;
    }

    public StudentVO() {
        // TODO Auto-generated constructor stub
    }

    public int getStudent_num() {
        return student_num;
    }
   
    public String getName() {
        return name;
    }
   
    public int getAge() {
        return age;
    }
   
    public String getPhone() {
        return phone;
    }
   
    public String getEmail() {
        return email;
    }
}

Total 113건 2 페이지
  • 98 [ java ] JavaFestival10 - Question2 - 문자열을 입력받아 알파벳순서대로 정렬하여…
  • JavaFestival10 - Question2 - 문자열을 입력받아 알파벳순서대로 정렬하여 반환하는 메소드를 구현하시오. 단, 대소문자는 구분한다. import java.util.Arrays; public class Question2 { public static void main(String[] args) { // 문자열을 입력받아 알파벳순서대로 정렬하여 반환하는 메소드를 구현하시오 // 단, 대소문자는 구분한다. ...
  • 웹지기 01-07 4814 0 0 댓글 0
  • 97 [ java ] Eclipse GUI ( Graphic User Interface ) Download 및 I…
  • GUI ( Graphic User Interface ) Download Eclipse IDE - GUI Installation Help &gt; Install New Software &gt; Add &gt; Local : WindowBuilder Archive : http://download.eclipse.org/windowbuilder/WB/integration/4.5/ &gt; Add &gt; Swing Designer check ...
  • 웹지기 01-06 1781 0 0 댓글 0
  • 96 [ java ] GUI Programming 방법
  • Java의 GUI Programming 방법 - AWT( Abstract Windowing Toolkit ) 자바가 처음 나왔을 때 함께 배포된 GUI라이브러리 운영체제에 따라 서로 다른 모양으로 그려짐 - Swing(스윙) AWT기술을 기반으로 작성된 자바라이브러리 운영체제에 관계없이 항상 동일하게 작동하며 동일한 모양으로 그려짐 컨테이너(Container)와 컴포넌트(Component) 컨테이너(Container) - 컴포넌트들의 배치를 관리하는 Layout의 개념 ...
  • 웹지기 01-06 1342 0 0 댓글 0
  • 95 [ java ] DAO , DTO
  • DTO ( Data Transfer Object ) - VO ( Value Object ) - 순수 데이터의 객체 - 속성과 그 속성에 접근하기 위한 getter, setter 메소드만을 가진 클래스 DAO ( Data Access Object ) - DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트 - 등록, 수정, 조회, 삭제 등의 작업을 하는 클래스 - CRUD ( CREATE, READ, UPDATE, DELETE ) 작업
  • 웹지기 12-28 3128 0 0 댓글 0
  • 92 [ java ] eclipse jdbc like 구문 사용하기
  • eclipse jdbc like 구문 사용하기 sql = " SELECT * FROM student WHERE name LIKE ? "; pst = conn.prepareStatement(sql); String names = '%'+name+'%'; pst.setString(1, names); ResultSet rs = pst.excuteQuery();
  • 웹지기 12-24 4118 0 0 댓글 0
  • 91 [ java ] jdbc 연동 - 상태창, 연결확인
  • jdbc 연결 상태 확인창 열기 - data source connections 열기 Window &gt; Show view &gt; other &gt; data로검색(Data Source Explorer) &gt; open (콘솔창에 data source explorer 창이 뜸 - 마우스 우클릭으로 connect // disconnect ) Databae Connections &gt; 마우스우클릭 &gt; New &gt...
  • 웹지기 12-23 6371 0 0 댓글 0
  • 90 [ java ] interface(인터페이스)
  • Interface(인터페이스) 클래스들이 구현해야 하는 공통되는 기능들을 미리지정 작업명세서 or 프로젝트 설계도 기능만 정의함으로써 구현 객체의 같은 동작 보장(구현강제) 1) 인터페이스는 틀을 정해주기 때문에 추상메소드만 존재할 수 있다. 2) 추가로 필드에는 상수를 넣어 줄 수 있다. 즉, 인터페이스에는 추상메서드와 추상 필드만 들어갈 수 있다. 하나의 클래스가 여러개의 인터페이스를 구현 할 수 있다.( implements ) 인터페이스는 인터페이스를 상속받을 수 있다.(...
  • 웹지기 12-23 1676 0 0 댓글 0
  • 89 [ java ] JavaFestival10 - Question1 - 어떤 문장의 각 알파벳을 일정한 거리만큼…
  • Question1 - 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 한다. - A를 3만큼 밀면 D가 되고 z를 1만큼 밀면 a가 됩니다. 공백은 수정하지 않는다. - 보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는 ceasar 함수를 완성해 보시오. - "a B z" , 4를 입력 바았다면 "e F d" 를 리턴한다. public class Question1 {...
  • 웹지기 12-22 2140 0 0 댓글 0
  • 86 [ java ] 상속 - 마우스 버튼에 대한 중복 클래스를 상속으로 변경
  • 마우스 버튼에 대한 중복 클래스를 상속으로 변경 Mouse.java 에서 사용하는 클래스를 WheelMouse.java와 ErgonomicsMouse.java 파일도 사용하므로 중복이 발생하는데 이를 상속을 통해서 코드를 생략하고, 편리하게 사용할 수 가 있다. ----- Main.java ----- package 상속_마우스; public class Main { public static void main(String[] args) { ...
  • 웹지기 12-22 2233 0 0 댓글 0
  • 85 [ java ] 상속 , 오버라이딩 , 다형성 , 추상클래스 , 패키지
  • 코드의 생산성을 높이기 위해 반복문, 메소드, 상속등을 사용하여 코드를 간결하게 한다. 1) 상속 (기존 클래스의 변수(데이터)와 메소드(로직, 코드)를 물려받아 새로운 클래스를 구성하는 것) - 프로그램의 생산성을 높이기 위함 - 자식 클래스는 부모클래스에 만들어진 필드와 메소드를 만들지 않고도 만든 것과 같은 효과를 얻는다. - 기존에 사용하던 것에 대한 확장의 개념 - 클래스 사이의 상속이지 객체 사이의 상속이 아님. - 자식 객체는 자식클래스와 부모 클래스에 만들어진 모든 ...
  • 웹지기 12-22 2142 0 0 댓글 0
  • 84 [ java ] MVC 패턴 적용 방식 - 음악재생 플레이어
  • MVC 패턴 적용 방식 - 음악재생 플레이어 M - Model Class V - View Class C - Controller Class 모델은 클래스의 멤버변수, 멤버함수 등 뷰는 클래의 모델에 포함된 데이터를 시각화 콘트롤러는 클래스의 모델과 뷰 모두에 영향을 주며 데이터의 흐름을 제어, 데이터의 갱신등 ----- Music.java ----- public class Music { //Model Class private String mus...
  • 웹지기 12-21 5793 0 0 댓글 2
게시물 검색

회원로그인

접속자집계

오늘
6,555
어제
8,701
최대
61,067
전체
11,210,847

그누보드5
Copyright © funyphp.com. All rights reserved.