휴먼교육센터 개발자과정 50~57일차

조하영·2022년 10월 21일
0
post-thumbnail

자바 미니 프로젝트
프로젝트 인원: 1인
주제: 병원 환자 관리 프로그램



































로그인창 클래스

package gui;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import DAO_DTO.U_DAO;
import DAO_DTO.U_DTO;

import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Login extends JFrame implements ActionListener {

    /**
     * 
     */
    private static final long serialVersionUID = -3479132687255390618L;
    private JPanel contentPane;
    private JTextField textField_1 = new JTextField();// 아이디
    private JTextField textField = new JTextField();// 비번
    private final JButton btnNewButton = new JButton("로그인");
    U_DAO udao = new U_DAO();
    U_DTO udto = new U_DTO();

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

    /**
     * Create the frame.
     */
    public Login() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 350, 200);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JLabel lblLogin = new JLabel("  환자관리 프로그램 v1.0");
        lblLogin.setFont(new Font("굴림", Font.BOLD, 15));
        contentPane.add(lblLogin, BorderLayout.NORTH);

        JPanel panel = new JPanel();
        panel.setBorder(null);
        contentPane.add(panel, BorderLayout.CENTER);
        panel.setLayout(new GridLayout(4, 4, 0, 0));

        JLabel label = new JLabel("");
        panel.add(label);

        JLabel label_8 = new JLabel("");
        panel.add(label_8);

        JLabel label_7 = new JLabel("");
        panel.add(label_7);

        JLabel label_6 = new JLabel("");
        panel.add(label_6);

        JLabel label_5 = new JLabel("");
        panel.add(label_5);

        JLabel lblId = new JLabel("ID :");
        panel.add(lblId);

        panel.add(textField_1);
        textField_1.setColumns(20);

        JLabel label_1 = new JLabel("");
        panel.add(label_1);

        JLabel label_4 = new JLabel("");
        panel.add(label_4);

        JLabel lblPwd = new JLabel("PWD : ");
        panel.add(lblPwd);

        panel.add(textField);
        textField.setColumns(10);

        JLabel label_3 = new JLabel("");
        panel.add(label_3);

        JLabel label_2 = new JLabel("");
        panel.add(label_2);

        JPanel panel_1 = new JPanel();
        contentPane.add(panel_1, BorderLayout.SOUTH);

        btnNewButton.addActionListener(this);

        panel_1.add(btnNewButton);
        this.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {

        Object temp = e.getSource();
        if (temp.equals(btnNewButton)) {
            udto = new U_DTO();
            udto.setUid(textField_1.getText());
            udto.setUpwd(textField.getText());
            udto = udao.chkLogin(udto);
            if (udto == null) {
                JOptionPane.showMessageDialog(null, "아이디, 비밀번호를 확인해주세요.");
            } else {
                new MainWin(udto);
                this.setVisible(false);
            }
        }
    }

}

메인창 클래스

package gui;

import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

import DAO_DTO.Pat_DAO;
import DAO_DTO.Pat_DTO;
import DAO_DTO.U_DTO;
import jxl.Workbook;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

public class MainWin extends JFrame implements ActionListener, MouseListener, ItemListener {

    /**
     * 
     */
    private static final long serialVersionUID = 8675085867570491262L;
    private JPanel contentPane;
    private JTextField textField;
    private JTextField textField_1;
    private JTable table;
    private int row;
    private Object value;
    private String selRadio;
    private int count;

    static JButton btnSer = new JButton("검색");
    JButton btnDel = new JButton("삭제");
    JButton btnMod = new JButton("수정");
    JButton btnNewButton = new JButton("퇴원처리");
    JButton btnAdd = new JButton("등록");
    JButton btnUseradd = new JButton("사용자관리");
    JRadioButton radioButton = new JRadioButton("재원");
    JRadioButton radioButton_1 = new JRadioButton("퇴원");
    JRadioButton radioButton_2 = new JRadioButton("전체");
    private JComboBox<String> comboBox;
    private ArrayList<String> selList;
    private JComboBox<String> comboBoxD; 
//	= new JComboBox<String>(new String[] { "입원일", "퇴원일"});

    String header[] = { "환자번호", "호실", "환자명", "성별", "나이", "진료과", "진단명", "비고", "입원일", "퇴원일" };
    DefaultTableModel model = new DefaultTableModel(header, 0); // header추가

    Pat_DAO pdao = new Pat_DAO();
    Pat_DTO pdto = new Pat_DTO();
    ButtonGroup group = new ButtonGroup(); //라디오 버튼 그룹
    DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
    private final JButton btnExel = new JButton("엑셀로 저장");
    private final JLabel lblNewLabel = new JLabel("");
    private final JLabel label_3 = new JLabel("");
    private final JLabel label_4 = new JLabel("");
    private final JLabel label_5 = new JLabel("");
    private final JLabel label_10 = new JLabel("2 층");
    private final JLabel label_11 = new JLabel("");
    private final JLabel label_12 = new JLabel("");
    private final JLabel label_17 = new JLabel("1 층");
    private final JLabel label_18 = new JLabel("");
    private final JLabel label_19 = new JLabel("");
    private final JLabel label_20 = new JLabel("양방과");
    private final JLabel label_21 = new JLabel("한방2과");
    private final JLabel label_22 = new JLabel("한방1과");
    private final JLabel label_23 = new JLabel("전     체");
    private final JLabel label_24 = new JLabel("환자현황");
    private final JLabel label_28 = new JLabel("");
    private final JLabel label_29 = new JLabel("");
    private final JLabel label = new JLabel("시작일 ");
    private final JLabel label_1 = new JLabel("종료일 ");
    private JLabel label_2 = new JLabel();//양방과 합계
    private JLabel label_6 = new JLabel(); //2층 양방과
    private JLabel label_7 = new JLabel(); //2층 한방2과
    private JLabel label_8 = new JLabel();  //2층 한방1과
    private JLabel label_9 = new JLabel(); //2층 합
    private JLabel label_13 = new JLabel(); //1층 양방과
    private JLabel label_14 = new JLabel(); //1층 한방2과
    private JLabel label_15 = new JLabel(); //1층 한방1과
    private JLabel label_16 = new JLabel();//1층 합
    private JLabel label_35 = new JLabel();//한방2과합계
    private JLabel label_25 = new JLabel();//한방1과 합계
    private JLabel label_26 = new JLabel();//전체합계
    private LineBorder border = new LineBorder(Color.black, 1);

    private final JLabel label_36 = new JLabel("");
    private final JLabel label_27 = new JLabel("합   계");
    private final JLabel label_30 = new JLabel("");
    private final JLabel label_31 = new JLabel("");

    /**
     * Create the frame.
     */
    public MainWin(U_DTO udto) {
        super("환자관리 프로그램 v1.0");

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 900, 800);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JPanel panel = new JPanel();
        contentPane.add(panel, BorderLayout.NORTH);
        panel.setLayout(new GridLayout(7, 1, 0, 0));
        panel.add(label_29);
        panel.add(label_28);
        panel.add(label_24);
        panel.add(label_23);
        panel.add(label_22);
        panel.add(label_21);
        panel.add(label_20);
        panel.add(label_19);
        panel.add(label_18);
        panel.add(label_17);
        panel.add(label_16);
        panel.add(label_15);
        panel.add(label_14);
        panel.add(label_13);
        panel.add(label_12);
        panel.add(label_11);
        panel.add(label_10);
        panel.add(label_9);
        panel.add(label_8);
        panel.add(label_7);
        panel.add(label_6);
        panel.add(label_36);
        panel.add(label_30);
        panel.add(label_27);
        panel.add(label_26);
        panel.add(label_25);
        panel.add(label_35);
        panel.add(label_2);
        panel.add(label_5);
        panel.add(label_31);
        panel.add(label_3);

        //라디오 버튼 그룹
        panel.add(radioButton_2);
        group.add(radioButton_2);

        panel.add(radioButton);
        group.add(radioButton);

        panel.add(radioButton_1);
        group.add(radioButton_1);// 그룹에 그룹화시킬 버튼들을 추가
        // 같은 그룹끼리는 그룹중에 1개만 선택된다.
        radioButton_2.setSelected(true);
        comboBox = new JComboBox<String>();
        comboBox.setModel(new DefaultComboBoxModel<String>(new String[] { "전체과", "한방1과", "한방2과", "양방과" }));
//		comboBox.setEditable(true);//화면에서 콤보박스 내용을 수정할 수 있게 함. 
        panel.add(comboBox);

        comboBoxD = new JComboBox<String>();
        panel.add(lblNewLabel);
        comboBoxD.setModel(new DefaultComboBoxModel<String>(new String[] { "입원일", "퇴원일"}));
        panel.add(comboBoxD);


        panel.add(label);
        label.setHorizontalAlignment(JLabel.RIGHT);

        textField = new JTextField();// 시작일
        panel.add(textField);
        textField.setColumns(10);

        panel.add(label_1);
        label_1.setHorizontalAlignment(JLabel.RIGHT);

        Color color = new Color(222,238,18,100);
        Color colorGreen = new Color(25,137,44);

        label_17.setHorizontalAlignment(JLabel.CENTER);//1층
        label_17.setBorder(border);//1층
        label_17.setOpaque(true);//1층
        label_17.setBackground(color);//1층
        label_10.setHorizontalAlignment(JLabel.CENTER);
        label_10.setBorder(border);
        label_10.setOpaque(true);
        label_10.setBackground(color);
        label_27.setHorizontalAlignment(JLabel.CENTER);
        label_27.setBorder(border);
        label_27.setOpaque(true);
        label_27.setBackground(color);
        label_20.setHorizontalAlignment(JLabel.CENTER);//양방과
        label_20.setBorder(border);//양방과
        label_20.setOpaque(true);//양방과
        label_20.setBackground(color);//양방과
        label_21.setHorizontalAlignment(JLabel.CENTER);//한방2과
        label_21.setBorder(border);//한방2과
        label_21.setOpaque(true);//한방2과
        label_21.setBackground(color);//한방2과
        label_22.setHorizontalAlignment(JLabel.CENTER);//한방1과
        label_22.setBorder(border);//한방1과
        label_22.setOpaque(true);//한방1과
        label_22.setBackground(color);//한방1과
        label_23.setHorizontalAlignment(JLabel.CENTER);//전체
        label_23.setBorder(border);//전체
        label_23.setOpaque(true);//전체
        label_23.setBackground(color);//전체
        label_24.setHorizontalAlignment(JLabel.CENTER);//환자현황
        label_24.setBorder(border);//환자현황
        label_24.setOpaque(true);//환자현황
        label_24.setBackground(color);//환자현황

        label_2.setHorizontalAlignment(JLabel.CENTER);//양방과 합계
        label_2.setBorder(border);//양방과 합계
        label_2.setOpaque(true);
        label_2.setForeground(Color.red);
        label_2.setBackground(Color.white);
        label_7.setHorizontalAlignment(JLabel.CENTER); //2층 한방2과
        label_7.setBorder(border); //2층 한방2과
        label_7.setOpaque(true); //2층 한방2과
        label_7.setForeground(colorGreen);
        label_7.setBackground(Color.white); //2층 한방2과
        label_6.setHorizontalAlignment(JLabel.CENTER); //2층 양방과
        label_6.setBorder(border); //2층 양방과
        label_6.setOpaque(true);  //2층 양방과
        label_6.setForeground(Color.red);
        label_6.setBackground(Color.white); //2층 양방과
        label_8.setHorizontalAlignment(JLabel.CENTER);  //2층 한방1과
        label_8.setBorder(border);  //2층 한방1과
        label_8.setOpaque(true);  //2층 한방1과
        label_8.setBackground(Color.white); //2층 한방1과
        label_8.setForeground(Color.blue); //2층 한방1과
        label_9.setHorizontalAlignment(JLabel.CENTER); //2층 합
        label_9.setBorder(border); //2층 합
        label_9.setOpaque(true); //2층 합
        label_9.setBackground(Color.white); //2층 합
        label_13.setHorizontalAlignment(JLabel.CENTER);//1층 양방과
        label_13.setBorder(border);//1층 양방과
        label_13.setOpaque(true);//1층 양방과
        label_13.setForeground(Color.red);
        label_13.setBackground(Color.white);//1층 양방과
        label_14.setHorizontalAlignment(JLabel.CENTER); //1층 한방2과
        label_14.setBorder(border); //1층 한방2과
        label_14.setOpaque(true); //1층 한방2과
        label_14.setForeground(colorGreen);
        label_14.setBackground(Color.white); //1층 한방2과
        label_15.setHorizontalAlignment(JLabel.CENTER); //1층 한방1과
        label_15.setBorder(border); //1층 한방1과
        label_15.setOpaque(true);//1층 한방1과
        label_15.setForeground(Color.blue);
        label_15.setBackground(Color.white); //1층 한방1과
        label_16.setHorizontalAlignment(JLabel.CENTER);//1층 합
        label_16.setBorder(border);//1층 합
        label_16.setOpaque(true);//1층 합
        label_16.setBackground(Color.white);//1층 합
        label_35.setHorizontalAlignment(JLabel.CENTER);//한방2과합계
        label_35.setBorder(border);//한방2과합계
        label_35.setOpaque(true);//한방2과합계
        label_35.setForeground(colorGreen);
        label_35.setBackground(Color.white);//한방2과합계
        label_25.setHorizontalAlignment(JLabel.CENTER);//한방1과 합계
        label_25.setBorder(border);//한방1과 합계
        label_25.setOpaque(true);//한방1과 합계
        label_25.setForeground(Color.blue);
        label_25.setBackground(Color.white);//한방1과 합계
        label_26.setHorizontalAlignment(JLabel.CENTER);//전체합계
        label_26.setBorder(border);//전체합계
        label_26.setOpaque(true);//전체합계
        label_26.setBackground(Color.white);//전체합계


        textField_1 = new JTextField();// 종료일
        panel.add(textField_1);
        textField_1.setColumns(10);
        panel.add(btnSer);
        btnSer.addActionListener(this);

        panel.add(label_4);

        panel.add(btnExel);

        panel.add(btnUseradd);
        panel.add(btnAdd);
        panel.add(btnDel);
        panel.add(btnMod);
        panel.add(btnNewButton);
        if (udto.getUgrade().equals("운영자")) {
            btnAdd.addActionListener(this);
            btnDel.addActionListener(this);
            btnMod.addActionListener(this);
            btnUseradd.addActionListener(this);
            btnNewButton.addActionListener(this);
        } else if (udto.getUgrade().equals("관리자")) {
            btnAdd.addActionListener(this);
            btnMod.addActionListener(this);
            btnNewButton.addActionListener(this);
        }
        btnExel.addActionListener(this);
        radioButton.addItemListener(this);
        radioButton_1.addItemListener(this);
        radioButton_2.addItemListener(this);
        table = new JTable(model);
        table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        table.setAutoCreateRowSorter(true);
        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(table.getModel());
        table.setRowSorter(sorter);
        JScrollPane scrolledTable = new JScrollPane(table); // 스크롤 될 수 있도록 JScrollPane 적용
        scrolledTable.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); // 너무 붙어있어서 가장자리 띄움(padding)
        //테이블 컬럼 너비 지정
        table.getColumn("환자번호").setPreferredWidth(25);
        table.getColumn("성별").setPreferredWidth(2);
        table.getColumn("나이").setPreferredWidth(2);
        table.getColumn("호실").setPreferredWidth(10);
        table.getColumn("진료과").setPreferredWidth(30);
        table.getColumn("환자명").setPreferredWidth(25);
        table.getColumn("진단명").setPreferredWidth(300);
        table.getColumn("입원일").setPreferredWidth(30);
        table.getColumn("퇴원일").setPreferredWidth(30);
        table.setRowHeight(25);
        contentPane.add("Center", scrolledTable);
        table.addMouseListener(this);
        this.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        Object temp = e.getSource();
        if (temp.equals(btnSer)) {
            search();
        } else if (temp.equals(btnDel)) {
            int answer = JOptionPane.showConfirmDialog(null, "환자정보를 삭제하시겠습니까?", "확인", JOptionPane.OK_CANCEL_OPTION);
            if (answer == 0) {
                pdao.deletePat(value);
                search();
            }
        } else if (temp.equals(btnMod)) {
//			Pat_DTO mod = pdao.SelectOne(value);
            new ModyPat(pdto);
        } else if (temp.equals(btnNewButton)) {
            int answer = JOptionPane.showConfirmDialog(null, "퇴원처리하시겠습니까?", "확인", JOptionPane.OK_CANCEL_OPTION);
            if (answer == 0) {
                pdao.outPat(value);
                search();
            }
        } else if (temp.equals(btnAdd)) {
            new AddPat();

        } else if (temp.equals(btnUseradd)) {
            new UserMGR();
        } else if (temp.equals(btnExel)) {
            String[] getColumn = new String[table.getColumnCount()];
            for (int i = 0; i < table.getColumnCount(); i++) {
                getColumn[i] = table.getColumnName(i);
            }

            Object[][] getData = new Object[table.getRowCount()][table.getColumnCount()];
            for (int i = 0; i < table.getRowCount(); i++) {
                for (int j = 0; j < table.getColumnCount(); j++) {
                    getData[i][j] = table.getValueAt(i, j);
                }
            }
            try {
                WritableWorkbook workbook = Workbook.createWorkbook(new File("C:\\Users\\human\\Desktop\\환자리스트_"+count+".xls"));// 엑셀파일생성(생성위치,파일명)
                WritableSheet sheet = workbook.createSheet("환자리스트", 0);// 엑셀 시트 생성(이름,몇번째 시트)
                WritableCellFormat col_form = new WritableCellFormat();// 컬럼포맷,default 스트링
                WritableCellFormat data_form = new WritableCellFormat();// 데이터 포맷,default 스트링
//			WritableCellFormat int_form = new WritableCellFormat(NumberFormat.INTEGER_FIELD);
                col_form.setBackground(Colour.GRAY_25);// 컬럼 배경색 설정
                col_form.setBorder(Border.ALL, BorderLineStyle.THIN);

                for (int i = 0; i < getColumn.length; i++) {// 컬럼에 컬럼명 삽입
                    Label label = new Label(i, 0, getColumn[i], col_form);
                    sheet.addCell(label);
                }
                for (int i = 0; i < getData.length; i++) {
                    for (int j = 0; j < getData[i].length; j++) {
                        Label data = new Label(j, i + 1, String.valueOf(getData[i][j]), data_form);
                        sheet.addCell(data);
                    }
                }

                workbook.write();
                workbook.close();
                count++;

            } catch (IOException | WriteException e1) {
                e1.printStackTrace();
            }
        }
    }

    @Override
    public void mouseClicked(MouseEvent e) {
        Object temp = e.getSource();
        if (temp.equals(table)) {
            row = table.getSelectedRow();
            value = table.getValueAt(row, 0);
            String room = (String)table.getValueAt(row, 1);
            String name =  (String)table.getValueAt(row, 2);
            String sex =  (String)table.getValueAt(row, 3);
            int age = (int)table.getValueAt(row, 4);
            String depart =  (String)table.getValueAt(row, 5);
            String disease =  (String)table.getValueAt(row, 6);
            String memo =  (String)table.getValueAt(row, 7);
            String indate =  (String)table.getValueAt(row, 8);
            pdto.setNo((String)value);
            pdto.setRoom(room);
            pdto.setName(name);
            pdto.setSex(sex);
            pdto.setAge(age);
            pdto.setDepart(depart);
            pdto.setDisease(disease);
            pdto.setMemo(memo);
            pdto.setIndate(indate);

//			System.out.println(value);
        }
    }

    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void itemStateChanged(ItemEvent e) {
        if (e.getItemSelectable().equals(radioButton)) {
            selRadio = radioButton.getText();
        } else if (e.getItemSelectable().equals(radioButton_1)) {
            selRadio = radioButton_1.getText();
        } else {
            selRadio = null;
        }

    }

    public void search() {
        int allSum = 0;
        int allSum_1 = 0;
        int allSum_2= 0;
        int sum_ort1= 0;
        int sum_ort1_1= 0;
        int sum_ort1_2= 0;
        int sum_ort2= 0;
        int sum_ort2_1= 0;
        int sum_ort2_2= 0;
        int sum_med = 0;
        int sum_med_1= 0;
        int sum_med_2= 0;
        selList = new ArrayList<String>();
        String depart = comboBox.getSelectedItem().toString();
        String date = comboBoxD.getSelectedItem().toString();
        if (depart.equals("전체과")) {
            depart = null;
        }
        selList.add(depart);
        selList.add(selRadio);
        selList.add(textField.getText());
        selList.add(textField_1.getText());
        selList.add(date);
//		for(String i : selList) {
//			System.out.println(i);
//		}

        ArrayList<Pat_DTO> pList = pdao.allSelect(selList);
        allSum = pList.size();
        for(Pat_DTO i : pList) {
            if(i.getDepart().equals("양방과")) {
                sum_med++;
                if(i.getRoom().charAt(0)=='1') {
                    sum_med_1++;
                    allSum_1++;
                }else if(i.getRoom().charAt(0)=='2'){
                    sum_med_2++;
                    allSum_2++;
                }
            }else if(i.getDepart().equals("한방1과")) {
                sum_ort1++;
                if(i.getRoom().charAt(0)=='1') {
                    sum_ort1_1++;
                    allSum_1++;
                }else if(i.getRoom().charAt(0)=='2'){
                    sum_ort1_2++;
                    allSum_2++;
                }
            }else if(i.getDepart().equals("한방2과")) {
                sum_ort2++;
                if(i.getRoom().charAt(0)=='1') {
                    sum_ort2_1++;
                    allSum_1++;
                }else if(i.getRoom().charAt(0)=='2'){
                    sum_ort2_2++;
                    allSum_2++;
                }
            }
        }
        label_26.setText(Integer.toString(allSum));
        label_2.setText(Integer.toString(sum_med));
        label_6.setText(Integer.toString(sum_med_2));//2층 양방과
        label_7.setText(Integer.toString(sum_ort2_2));//2층 한방2과
        label_8.setText(Integer.toString(sum_ort1_2));//2층 한방1과
        label_9.setText(Integer.toString(allSum_2)); //2층 합
        label_13.setText(Integer.toString(sum_med_1)); //1층 양방과
        label_14.setText(Integer.toString(sum_ort2_1)); //1층 한방2과
        label_15.setText(Integer.toString(sum_ort1_1)); //1층 한방1과
        label_16.setText(Integer.toString(allSum_1));//1층 합
        label_35.setText(Integer.toString(sum_ort2));//한방2과합계
        label_25.setText(Integer.toString(sum_ort1));//한방1과 합계
        model.setNumRows(0);
        for (Pat_DTO i : pList) {
            if (i.getOutdate() == null) {
                model.addRow(new Object[] { i.getNo(), i.getRoom(), i.getName(), i.getSex(), i.getAge(),
                        i.getDepart(), i.getDisease(), i.getMemo(), i.getIndate().substring(2, 10) });
            } else {
                model.addRow(new Object[] { i.getNo(), i.getRoom(), i.getName(), i.getSex(), i.getAge(),
                        i.getDepart(), i.getDisease(), i.getMemo(), i.getIndate().substring(2, 10),
                        i.getOutdate().substring(2, 10) });
            }
        }
    }
}

사용자 관리창 클래스



package gui;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import DAO_DTO.U_DAO;
import DAO_DTO.U_DTO;

public class UserMGR extends JFrame implements ActionListener, ItemListener {
    /**
     * 
     */
    private static final long serialVersionUID = 8432360310016535040L;
    // 패널객체생성
    JPanel centerP = new JPanel();
    JPanel centerP1 = new JPanel();
    JPanel centerP2 = new JPanel();
    JPanel centerP3_1 = new JPanel();
    JPanel centerP3_2 = new JPanel();
    JPanel centerP3_3 = new JPanel();
    JPanel NorthP = new JPanel();
    JPanel SouthP = new JPanel();
    // 라벨객체 생성
    JLabel titleLB = new JLabel("  사용자 관리");
    JLabel uid = new JLabel("아  이  디");
    JLabel uname = new JLabel("이         름");
    JLabel upwd = new JLabel("비밀번호");
    JLabel upart = new JLabel("근무부서");
    JLabel lblUgrade = new JLabel("등         급");
    JLabel empty = new JLabel("");
    // 텍스트필드 객체생성
    JTextField searchUser = new JTextField(10);
    JTextField uidIn = new JTextField(12);
    JTextField unameIn = new JTextField(12);
    JTextField upwdIn = new JTextField(12);
    JTextField upartIn = new JTextField(12);
    JComboBox<String> comboBox;

    // 버튼 객체생성
    JButton add = new JButton("사용자추가");
    JButton del = new JButton("사용자삭제");
    JButton show = new JButton("사용자보기");
    JButton search = new JButton("검    색");
    JButton save = new JButton("저장하기");
    List userList = new List(9);
    JTextArea userInfo = new JTextArea(9, 14);
    U_DAO udao = new U_DAO();
    U_DTO udto = new U_DTO();
    String selUser;

    public UserMGR() {// 로그인 창 만들어보기
        // 창 만들기
        this.setBounds(100, 300, 330, 350);// 사이즈 설정(x좌표, y좌표 ,너비, 높이)

        // 창에 프레임 배치
        this.add(NorthP, "North");
        this.add(centerP, "Center");
        this.add(SouthP, "South");

        // 패널 레이아웃 지정
        centerP.setLayout(new FlowLayout(FlowLayout.RIGHT));
        NorthP.setLayout(new FlowLayout(FlowLayout.LEFT));
        SouthP.setLayout(new FlowLayout(FlowLayout.LEFT));
        centerP3_1.setLayout(new GridLayout(6, 2));

        titleLB.setFont(new Font(null, Font.BOLD, 15));
        NorthP.add(titleLB);
        // 센터페널안에 3개의 패널 배치
        centerP.add(centerP1);
        centerP.add(centerP2);
        // 센터패널 1에 버튼과 텍스트 필드 추가
        centerP1.add(searchUser);
        centerP1.add(search);
        // 센터패널 2에 버튼 배치
        centerP2.add(add);
        centerP2.add(del);
        centerP2.add(show);
        // 센터패널 3_1
        centerP3_1.add(uid);
        centerP3_1.add(uidIn);
        centerP3_1.add(uname);
        centerP3_1.add(unameIn);
        centerP3_1.add(upart);
        centerP3_1.add(upartIn);
        centerP3_1.add(upwd);
        centerP3_1.add(upwdIn);
        centerP3_1.add(lblUgrade);
        comboBox = new JComboBox<String>();
        comboBox.setModel(new DefaultComboBoxModel<String>(new String[] { "운영자", "관리자", "사용자 " }));
        comboBox.setEditable(true);

        centerP3_1.add(comboBox);
        centerP3_1.add(empty);
        centerP3_1.add(save);
        // 센터패널 3_2

        centerP3_2.setLayout(new BorderLayout());
        centerP3_2.add(userList, "West");
        centerP3_2.add(userInfo, "East");

        // 액션리스너 인터페이스의 기능을 사용하기 위함
        add.addActionListener(this);
        del.addActionListener(this);
        show.addActionListener(this);
        search.addActionListener(this);
        save.addActionListener(this);
        userList.addItemListener(this);

        this.setResizable(false);
        this.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        Object temp = e.getSource();
        if (temp.equals(add)) {
            centerP.add(centerP3_1);
            centerP3_2.setVisible(false);
            centerP3_3.setVisible(false);
            centerP3_1.setVisible(true);
            this.setVisible(true);
            selUser = null;
        } else if (temp.equals(del)) {
            if (selUser == null) {
                JOptionPane.showMessageDialog(null, "삭제할 아이디를 선택하세요.");
            } else {
                int answer = JOptionPane.showConfirmDialog(null, selUser + "를 삭제하시겠습니까?", "확인",
                        JOptionPane.OK_CANCEL_OPTION);
                if (answer == 0) {
                    udao.deleteUser(selUser);
                }
            }

        } else if (temp.equals(show)) {
            centerP.add(centerP3_2);

            ArrayList<U_DTO> uList = udao.allSelect();
            userList.removeAll();
            userInfo.setText("");
            for (U_DTO i : uList) {
                userList.add(i.getUid());
            }
            centerP3_1.setVisible(false);
            centerP3_3.setVisible(false);
            centerP3_2.setVisible(true);

            this.setVisible(true);

        } else if (temp.equals(search)) {
            centerP.add(centerP3_2);
            String word = searchUser.getText();
            System.out.println(word);
            searchUser.setText("");
            if (word.equals("")) {
                JOptionPane.showMessageDialog(null, "검색할 아이디나 이름을 입력해주세요.");
            } else {
                ArrayList<U_DTO> uList = udao.search(word);
                userList.removeAll();
                if (uList.size() == 0) {
                    JOptionPane.showMessageDialog(null, "아이디나 이름이 없습니다.");
                } else {
                    userInfo.setText("");
                    for (U_DTO i : uList) {
                        userList.add(i.getUid());
                    }
                    centerP3_1.setVisible(false);
                    centerP3_3.setVisible(false);
                    centerP3_2.setVisible(true);
                    this.setVisible(true);
                }
            }
            selUser = null;

        } else if (temp.equals(save)) {
            String uid = uidIn.getText();
            if (udao.chkUser(uid)) {
                String uname = unameIn.getText();
                String upwd = upwdIn.getText();
                String upart = upartIn.getText();
                Object a = comboBox.getSelectedItem();
                String ugrade = (String) a;
                uidIn.setText("");
                unameIn.setText("");
                upwdIn.setText("");
                upartIn.setText("");
//			comboBox.setSelectedItem(comboBox.getItemAt(0));//첫 인덱스로 값을 셋팅해줌
                udto.setUid(uid);
                udto.setUname(uname);
                udto.setUpwd(upwd);
                udto.setUpart(upart);
                udto.setUgrade(ugrade);
                udao.insertUser(udto);
            } else {
                JOptionPane.showMessageDialog(null, "이미 사용중인 아이디입니다.");
            }
        }
    }

    @Override
    public void itemStateChanged(ItemEvent e) {
        if (e.getSource().equals(userList)) {
            selUser = userList.getSelectedItem();
            U_DTO udto = udao.SelectOne(selUser);

            userInfo.setText("");
            userInfo.append("아이디: " + udto.getUid() + "\n");
            userInfo.append("이     름: " + udto.getUname() + "\n");
            userInfo.append("비밀번호: " + udto.getUpwd() + "\n");
            userInfo.append("근무부서: " + udto.getUpart() + "\n");
            userInfo.append("등     급: " + udto.getUgrade() + "\n");

        }

    }
}

환자등록 창 클래스

 package gui;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import DAO_DTO.Pat_DAO;
import DAO_DTO.Pat_DTO;

import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JTextField;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;

public class AddPat extends JFrame implements ActionListener {

    /**
     * 
     */
    private static final long serialVersionUID = -8904694273832105450L;
    private JPanel contentPane;
    private JTextField txtInputno;
    private JTextField txtInputroom;
    private JTextField txtInputname;
    private JTextField txtInputage;
    private JTextField txtInputdisease;
    private JTextField txtInputindate;
    private JTextField txtInputmemo;
    private JTextField txtInputsex;
    JComboBox<String> comboBox = new JComboBox<String>();
    JButton btnAdd = new JButton("저     장");



    /**
     * Create the frame.
     */
    public AddPat() {
//		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JPanel panel = new JPanel();
        contentPane.add(panel, BorderLayout.CENTER);
        panel.setLayout(new GridLayout(6, 6, 0, 0));

        JLabel lblNo = new JLabel("환자번호");
        panel.add(lblNo);

        txtInputno = new JTextField();
        panel.add(txtInputno);
        txtInputno.setColumns(10);

        JLabel lblRoom = new JLabel("입원호실");
        panel.add(lblRoom);

        txtInputroom = new JTextField();
        panel.add(txtInputroom);
        txtInputroom.setColumns(10);

        JLabel lblName = new JLabel("환자명");
        panel.add(lblName);

        txtInputname = new JTextField();
        panel.add(txtInputname);
        txtInputname.setColumns(10);

        JLabel lblAge = new JLabel("나    이");
        panel.add(lblAge);

        txtInputage = new JTextField();
        panel.add(txtInputage);
        txtInputage.setColumns(10);

        JLabel lblSex = new JLabel("성   별");
        panel.add(lblSex);

        txtInputsex = new JTextField();
        panel.add(txtInputsex);
        txtInputsex.setColumns(10);

        JLabel lblDapert = new JLabel("진료과");
        panel.add(lblDapert);

        comboBox.setModel(new DefaultComboBoxModel<String>(new String[] { "한방1과", "한방2과", "양방과" }));
        panel.add(comboBox);

        JLabel lblDisease = new JLabel("진단명");
        panel.add(lblDisease);

        txtInputdisease = new JTextField();
        panel.add(txtInputdisease);
        txtInputdisease.setColumns(10);

        JLabel lblIndate = new JLabel("입원날짜");
        panel.add(lblIndate);

        txtInputindate = new JTextField();
        txtInputindate.setText("예)22-10-17");
        panel.add(txtInputindate);
        txtInputindate.setColumns(10);

        JLabel lblMemo = new JLabel("비    고");
        panel.add(lblMemo);

        txtInputmemo = new JTextField();
        panel.add(txtInputmemo);
        txtInputmemo.setColumns(10);

        JLabel lblNewLabel_1 = new JLabel();
        panel.add(lblNewLabel_1);


        panel.add(btnAdd);

        JLabel lblTitle = new JLabel("환자 정보 입력");
        contentPane.add(lblTitle, BorderLayout.NORTH);
        this.setVisible(true);
        btnAdd.addActionListener(this);
    }


    @Override
    public void actionPerformed(ActionEvent e) {

        Object temp = e.getSource();
        if (temp.equals(btnAdd)) {
            Pat_DAO pdao = new Pat_DAO();
            Pat_DTO pdto = new Pat_DTO();
            String no = txtInputno.getText();
            if(pdao.chkNo(no)) {

                String room = txtInputroom.getText();
                String name = txtInputname.getText();
                String sex = txtInputsex.getText();
                int age = Integer.parseInt(txtInputage.getText());
                String depart = comboBox.getSelectedItem().toString();
                String disease = txtInputdisease.getText();
                String memo = txtInputmemo.getText();
                String indate = txtInputindate.getText();

                textfildReset();

                pdto.setNo(no);
                pdto.setRoom(room);
                pdto.setName(name);
                pdto.setSex(sex);
                pdto.setAge(age);
                pdto.setDepart(depart);
                pdto.setDisease(disease);
                pdto.setMemo(memo);
                pdto.setIndate(indate);
                pdao.insertWord(pdto);
                MainWin.btnSer.doClick();
            }else if(pdao.chkOut(no)){
                String room = txtInputroom.getText();
                String depart = comboBox.getSelectedItem().toString();
                String disease = txtInputdisease.getText();
                String memo = txtInputmemo.getText();
                String indate = txtInputindate.getText();

                textfildReset();

                pdto.setNo(no);
                pdto.setRoom(room);
                pdto.setDepart(depart);
                pdto.setDisease(disease);
                pdto.setMemo(memo);
                pdto.setIndate(indate);
                pdao.insertWord(pdto);
                MainWin.btnSer.doClick();

            }else {

                JOptionPane.showMessageDialog( null, "사용중인 환자번호입니다." );
            }
        }


        // TODO Auto-generated method stub

    }

    public void textfildReset() {
        txtInputno.setText("");
        txtInputroom.setText("");
        txtInputname.setText("");
        txtInputsex.setText("");
        txtInputage.setText("");
        txtInputdisease.setText("");
        txtInputmemo.setText("");
        txtInputindate.setText("");
    }

}

환자수정 창 클래스

package gui;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import DAO_DTO.Pat_DAO;
import DAO_DTO.Pat_DTO;
import javax.swing.JOptionPane;
import javax.swing.JLabel;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JTextField;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;

public class ModyPat extends JFrame implements ActionListener {

    /**
    * 
    */
    private static final long serialVersionUID = -4856589804294284315L;
    private JPanel contentPane;
    private JTextField txtInputno;
    private JTextField txtInputroom;
    private JTextField txtInputname;
    private JTextField txtInputage;
    private JTextField txtInputdisease;
    private JTextField txtInputindate;
    private JTextField txtInputmemo;
    private JTextField txtInputsex;
    JComboBox<String> comboBox = new JComboBox<String>();
    JButton btnMody = new JButton("수     정");
    Pat_DAO pdao = new Pat_DAO();
    Pat_DTO pdto;
    Pat_DTO mod;
    JOptionPane chk = new JOptionPane();

    /**
     * Create the frame.
     */
    public ModyPat(Pat_DTO pdto) {
        this.mod = pdto;
//			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JPanel panel = new JPanel();
        contentPane.add(panel, BorderLayout.CENTER);
        panel.setLayout(new GridLayout(6, 6, 0, 0));

        JLabel lblNo = new JLabel("환자번호");

        panel.add(lblNo);

        txtInputno = new JTextField();
        txtInputno.setText(pdto.getNo());
        panel.add(txtInputno);
        txtInputno.setColumns(10);

        JLabel lblRoom = new JLabel("입원호실");
        panel.add(lblRoom);

        txtInputroom = new JTextField();
        txtInputroom.setText(pdto.getRoom());
        panel.add(txtInputroom);
        txtInputroom.setColumns(10);

        JLabel lblName = new JLabel("환자명");
        panel.add(lblName);

        txtInputname = new JTextField();
        txtInputname.setText(pdto.getName());
        panel.add(txtInputname);
        txtInputname.setColumns(10);

        JLabel lblAge = new JLabel("나    이");
        panel.add(lblAge);

        txtInputage = new JTextField();
        String age1 = Integer.toString(pdto.getAge());
        txtInputage.setText(age1);
        panel.add(txtInputage);
        txtInputage.setColumns(10);

        JLabel lblSex = new JLabel("성   별");
        panel.add(lblSex);

        txtInputsex = new JTextField();
        txtInputsex.setText(pdto.getSex());
        panel.add(txtInputsex);
        txtInputsex.setColumns(10);

        JLabel lblDapert = new JLabel("진료과");
        panel.add(lblDapert);

        comboBox.setModel(new DefaultComboBoxModel<String>(new String[] { "한방1과", "한방2과", "양방과" }));
        panel.add(comboBox);
        comboBox.setSelectedItem(pdto.getDepart());
//		txtInputdepart.setText(pdto.getDepart());

        JLabel lblDisease = new JLabel("질병명");
        panel.add(lblDisease);

        txtInputdisease = new JTextField();
        txtInputdisease.setText(pdto.getDisease());
        panel.add(txtInputdisease);
        txtInputdisease.setColumns(10);

        JLabel lblIndate = new JLabel("입원날짜");
        panel.add(lblIndate);

        txtInputindate = new JTextField();
        txtInputindate.setText(pdto.getIndate());
        panel.add(txtInputindate);
        txtInputindate.setColumns(10);

        JLabel lblMemo = new JLabel("비    고");
        panel.add(lblMemo);

        txtInputmemo = new JTextField();
        txtInputmemo.setText(pdto.getMemo());
        panel.add(txtInputmemo);
        txtInputmemo.setColumns(10);

        JLabel lblNewLabel_1 = new JLabel();
        panel.add(lblNewLabel_1);

        panel.add(btnMody);

        JLabel lblTitle = new JLabel("환자 정보 수정");
        contentPane.add(lblTitle, BorderLayout.NORTH);
        this.setVisible(true);
        btnMody.addActionListener(this);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        Object temp = e.getSource();
        if (temp.equals(btnMody)) {
            pdto = new Pat_DTO();
            String no = txtInputno.getText();
            String room = txtInputroom.getText();
            String name = txtInputname.getText();
            String sex = txtInputsex.getText();
            int age = Integer.parseInt(txtInputage.getText());
            String depart = comboBox.getSelectedItem().toString();
            String disease = txtInputdisease.getText();
            String memo = txtInputmemo.getText();
            String indate = txtInputindate.getText();

            pdto.setNo(no);
            pdto.setRoom(room);
            pdto.setName(name);
            pdto.setSex(sex);
            pdto.setAge(age);
            pdto.setDepart(depart);
            pdto.setDisease(disease);
            pdto.setMemo(memo);
            pdto.setIndate(indate);

            if (mod.getNo().equals(pdto.getNo()) || pdao.chkNo(pdto.getNo())) {
                pdao.modyWord(pdto, mod);
                JOptionPane.showMessageDialog(null, "수정되었습니다.");
                txtInputno.setText("");
                txtInputroom.setText("");
                txtInputname.setText("");
                txtInputsex.setText("");
                txtInputage.setText("");
                txtInputdisease.setText("");
                txtInputmemo.setText("");
                txtInputindate.setText("");
                this.setVisible(false);
                MainWin.btnSer.doClick();
            } else {
                JOptionPane.showMessageDialog(null, "사용중인 환자번호입니다.");
            }
        }
    }
}

환자 정보 DAO

package DAO_DTO;

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

public class Pat_DAO {
    private Connection conn = null;

    public Pat_DAO() {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
//			System.out.println("연결성공");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println("연결실패");
        }
    }

//C:\Users\human\Desktop\Wallet_humanDB.zip
    public boolean connect() {
        try {
            conn = DriverManager.getConnection(
                    "jdbc:oracle:thin:@humanDB_high?TNS_ADMIN = C:/Users/human/Desktop/Wallet_humanDB", "admin",
                    "Jb21499549954.");
//			System.out.println("연결성공");
            return true;
        } catch (SQLException e) {
            e.printStackTrace();
            return false;
        }
    }

    public void insertWord(Pat_DTO pdto) {
        if (connect()) {
            String sql = "insert into patient values(?,?,?,?)";
            String sql2 = "insert into record values(?,?,?,?,default,?,?)";
            try {
                if (pdto.getAge() != 0) {
                    PreparedStatement psmt = conn.prepareStatement(sql);
                    psmt.setString(1, pdto.getNo());
                    psmt.setString(2, pdto.getName());
                    psmt.setInt(3, pdto.getAge());
                    psmt.setString(4, pdto.getSex());
                    psmt.executeUpdate();
                }

                PreparedStatement psmt2 = conn.prepareStatement(sql2);
                psmt2.setString(1, pdto.getNo());
                psmt2.setString(2, pdto.getDepart());
                psmt2.setString(3, pdto.getDisease());
                psmt2.setString(4, pdto.getIndate());
                psmt2.setString(5, pdto.getMemo());
                psmt2.setString(6, pdto.getRoom());
                psmt2.executeUpdate();

//				System.out.println("연결성공");
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                System.out.println("catch??");
            }
        } else {
            System.out.println("연결실패");
        }
    }

    public void deletePat(Object no) {
        String no1 = (String) no;
        if (connect()) {
            String sql = "delete from patient where no=?";
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, no1);
                psmt.executeUpdate();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
    }

//
    public void modyWord(Pat_DTO pdto, Pat_DTO mod) {
        if (connect()) {
            String sql = "update patient set no=?,name=?,age=?,sex=? where no=?";
            String sql2 = "update record set depart=?,disease=?,indate= ?,memo=?,room=? where no=? and outdate is null";
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, pdto.getNo());
                psmt.setString(2, pdto.getName());
                psmt.setInt(3, pdto.getAge());
                psmt.setString(4, pdto.getSex());
                psmt.setString(5, mod.getNo());
                psmt.executeUpdate();

                PreparedStatement psmt2 = conn.prepareStatement(sql2);
                psmt2.setString(1, pdto.getDepart());
                psmt2.setString(2, pdto.getDisease());
                psmt2.setString(3, pdto.getIndate());
                psmt2.setString(4, pdto.getMemo());
                psmt2.setString(5, pdto.getRoom());
                psmt2.setString(6, mod.getNo());
                psmt2.executeUpdate();

//				System.out.println("연결성공");
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                System.out.println("catch??");
            }
        } else {
            System.out.println("연결실패");
        }
    }

    public void outPat(Object no) {
        String no1 = (String) no;
        if (connect()) {
            String sql = "update record set outdate= sysdate where outdate is null and no=?";
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, no1);
                psmt.executeUpdate();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
    }

    // no, name, sex, age, depart, disease, memo, indate, outdate
    public ArrayList<Pat_DTO> allSelect(ArrayList<String> selList) {

        ResultSet rs;
        if (connect()) {
            String sql = "select * from view_pat where 1=1";
            if (selList.get(0) != null) {
                sql += " and depart= " + "'" + selList.get(0) + "'";
            }
            if (selList.get(1) != null) {
                if (selList.get(1).equals("재원")) {
                    sql += " and outdate is null";
                }
                if (selList.get(1).equals("퇴원")) {
                    sql += " and outdate is not null";
                }
            }
            if (selList.get(4).equals("입원일")) {
                if (!selList.get(2).equals("")) {
                    sql += " and indate >= " + "'" + selList.get(2) + "'";
                }
                if (!selList.get(3).equals("")) {
                    sql += " and indate <= " + "'" + selList.get(3) + "'";
                }
            }
            if (selList.get(4).equals("퇴원일")) {
                if (!selList.get(2).equals("")) {
                    sql += " and outdate >= " + "'" + selList.get(2) + "'";
                }
                if (!selList.get(3).equals("")) {
                    sql += " and outdate-1 <= " + "'" + selList.get(3) + "'";
                }
            }
            System.out.println(sql);
            ArrayList<Pat_DTO> pList = new ArrayList<>();
            try {
                Statement stmt = conn.createStatement();
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    Pat_DTO tempP = new Pat_DTO();
                    tempP.setNo(rs.getString("no"));
                    tempP.setRoom(rs.getString("room"));
                    tempP.setName(rs.getString("name"));
                    tempP.setSex(rs.getString("sex"));
                    tempP.setAge(rs.getInt("age"));
                    tempP.setDepart(rs.getString("depart"));
                    tempP.setDisease(rs.getString("disease"));
                    tempP.setMemo(rs.getString("memo"));
                    tempP.setIndate(rs.getString("indate"));
                    tempP.setOutdate(rs.getString("outdate"));
                    pList.add(tempP);
                }
                conn.close();
                return pList;
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
        return null;
    }

    public ArrayList<Pat_DTO> optionSel(String col, String option) {
        ResultSet rs;
        if (connect()) {
            String sql = "select * from view_pat where " + col + "=?";
            ArrayList<Pat_DTO> pList = new ArrayList<>();
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, option);
                rs = psmt.executeQuery();
                while (rs.next()) {
                    Pat_DTO tempP = new Pat_DTO();
                    tempP.setNo(rs.getString("no"));
                    tempP.setRoom(rs.getString("room"));
                    tempP.setName(rs.getString("name"));
                    tempP.setSex(rs.getString("sex"));
                    tempP.setAge(rs.getInt("age"));
                    tempP.setDepart(rs.getString("depart"));
                    tempP.setDisease(rs.getString("disease"));
                    tempP.setMemo(rs.getString("memo"));
                    tempP.setIndate(rs.getString("indate"));
                    tempP.setOutdate(rs.getString("outdate"));
                    pList.add(tempP);
                }
                conn.close();
                return pList;
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
        return null;
    }

//
    public Pat_DTO SelectOne(Object no) {
        String no1 = (String) no;
        ResultSet rs;
        Pat_DTO tempP = null;
        if (connect()) {
            String sql = "select * from view_pat where no = ?";
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, no1);
                rs = psmt.executeQuery();
                if (rs.next()) {
                    tempP = new Pat_DTO();
                    tempP.setNo(rs.getString("no"));
                    tempP.setRoom(rs.getString("room"));
                    tempP.setName(rs.getString("name"));
                    tempP.setSex(rs.getString("sex"));
                    tempP.setAge(rs.getInt("age"));
                    tempP.setDepart(rs.getString("depart"));
                    tempP.setDisease(rs.getString("disease"));
                    tempP.setMemo(rs.getString("memo"));
                    tempP.setIndate(rs.getString("indate"));
                    tempP.setOutdate(rs.getString("outdate"));
                }
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
        return tempP;
    }

//
    public boolean chkNo(String no) {
        ResultSet rs;
        if (connect()) {
            String sql = "select * from patient where no = ? ";
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, no);
                rs = psmt.executeQuery();

                while (rs.next()) {// 중복이 있으면 faulse
                    return false;
                }
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
        return true;
    }

    public boolean chkOut(String no) {
        ResultSet rs;
        if (connect()) {
            String sql = "select * from record where no = ? and outdate is null";
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, no);
                rs = psmt.executeQuery();

                while (rs.next()) {// 데이터가 있으면 faulse
                    return false;
                }
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
        return true;
    }
}

환자 정보 DTO

package DAO_DTO;


//no, room, name, sex, age, depart, disease, memo, indate, outdate
public class Pat_DTO {
    private String no = null;
    private String room = null;
    private String name = null;
    private String sex = null;
    private int age = 0;
    private String depart = null;
    private String disease = null;
    private String memo = null;
    private String indate = null;
    private String outdate = null;

    public String getRoom() {
        return room;
    }
    public void setRoom(String room) {
        this.room = room;
    }
    public String getNo() {
        return no;
    }
    public void setNo(String no) {
        this.no = no;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getDepart() {
        return depart;
    }
    public void setDepart(String depart) {
        this.depart = depart;
    }
    public String getDisease() {
        return disease;
    }
    public void setDisease(String disease) {
        this.disease = disease;
    }
    public String getMemo() {
        return memo;
    }
    public void setMemo(String memo) {
        this.memo = memo;
    }
    public String getIndate() {
        return indate;
    }
    public void setIndate(String date) {
        this.indate = date;
    }
    public String getOutdate() {
        return outdate;
    }
    public void setOutdate(String outdate) {
        this.outdate = outdate;
    }

}

사용자 정보 DAO

package DAO_DTO;

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


public class U_DAO {
    private Connection conn = null;

    public U_DAO() {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public boolean connect() {
        try {
            conn = DriverManager.getConnection("jdbc:oracle:thin:@humanDB_high?TNS_ADMIN = C:/Users/human/Desktop/Wallet_humanDB", "admin",
                    "Jb21499549954.");
            return true;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return false;
        }
    }

    public void insertUser(U_DTO udto) {
        if (connect()) {
            String sql = "insert into user1 values(?,?,?,?,?)";
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, udto.getUid());
                psmt.setString(2, udto.getUname());
                psmt.setString(3, udto.getUpart());
                psmt.setString(4, udto.getUpwd());
                psmt.setString(5, udto.getUgrade());
                psmt.executeUpdate();
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println("catch??");
            }
        } else {
            System.out.println("연결실패");
        }
    }

    public void deleteUser(String uid) {
        if (connect()) {
            String sql = "delete from user1 where u_id="+"'"+uid+"'";
            try {
                Statement stmt = conn.createStatement();
                stmt.executeQuery(sql);
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
    }

    public void modyUser(U_DTO udto) {
        if (connect()) {
            String sql = "update user1 set u_name=?, u_part=?, u_pwd=?, u_grade = ? where u_id=?";
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, udto.getUname());
                psmt.setString(2, udto.getUpart());
                psmt.setString(3, udto.getUpwd());
                psmt.setString(4, udto.getUgrade());
                psmt.setString(5, udto.getUid());
                psmt.executeUpdate();
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
    }

    public ArrayList<U_DTO> allSelect() {
        ResultSet rs;
        if (connect()) {
            String sql = "select * from user1";
            ArrayList<U_DTO> uList = new ArrayList<>();
            try {
                Statement stmt = conn.createStatement();
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    U_DTO tempU = new U_DTO();
                    tempU.setUid(rs.getString("u_id"));
                    tempU.setUname(rs.getString("u_name"));
                    tempU.setUpart(rs.getString("u_part"));
                    tempU.setUpwd(rs.getString("u_pwd"));
                    tempU.setUgrade(rs.getString("u_grade"));
                    uList.add(tempU);
                }
                conn.close();
                return uList;
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
        return null;
    }

    public U_DTO SelectOne(String uid) {
        ResultSet rs;
        U_DTO tempU = null;
        if (connect()) {
            String sql = "select * from user1 where u_id = ?";
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, uid);
                rs = psmt.executeQuery();
                if (rs.next()) {
                    tempU = new U_DTO();
                    tempU.setUid(rs.getString("u_id"));
                    tempU.setUname(rs.getString("u_name"));
                    tempU.setUpart(rs.getString("u_part"));
                    tempU.setUpwd(rs.getString("u_pwd"));
                    tempU.setUgrade(rs.getString("u_grade"));
                }
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
        return tempU;
    }

    public boolean chkUser(String uid) {
        ResultSet rs;
        if (connect()) {
            String sql = "select * from user1 where u_id =" + "'" + uid + "'";
            try {

                Statement stmt = conn.createStatement();
                rs = stmt.executeQuery(sql);

                while (rs.next()) {//아이디가 있으면 false
                }
                conn.close();
                return false;
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
        return true;
    }

    public U_DTO chkLogin(U_DTO udto) {
        ResultSet rs;
        U_DTO tempU = null;
        if (connect()) {
            String sql = "select * from user1 where u_id =? and u_pwd = ?";
            try {
                PreparedStatement psmt = conn.prepareStatement(sql);
                psmt.setString(1, udto.getUid());
                psmt.setString(2, udto.getUpwd());
                rs = psmt.executeQuery();
                if (rs.next()) {
                    tempU = new U_DTO();
                    tempU.setUid(rs.getString("u_id"));
                    tempU.setUname(rs.getString("u_name"));
                    tempU.setUpart(rs.getString("u_part"));
                    tempU.setUpwd(rs.getString("u_pwd"));
                    tempU.setUgrade(rs.getString("u_grade"));
                }
                conn.close();

            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }
        return tempU;
    }

    public ArrayList<U_DTO> search(String word) {
        ResultSet rs;
        if (connect()) {
            String sql = "select * from user1 where u_id like "+"'%"+word+"%'"+"or u_name like '%"+word+"%'";
            ArrayList<U_DTO> uList = new ArrayList<>();
            try {
                Statement stmt = conn.createStatement();
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    U_DTO tempU = new U_DTO();
                    tempU.setUid(rs.getString("u_id"));
                    tempU.setUname(rs.getString("u_name"));
                    tempU.setUpart(rs.getString("u_part"));
                    tempU.setUpwd(rs.getString("u_pwd"));
                    tempU.setUgrade(rs.getString("u_grade"));
                    uList.add(tempU);
                }
                conn.close();
                return uList;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("연결실패");
        }

        return null;
    }

}

사용자 정보 DTO

package DAO_DTO;

public class U_DTO {
    private String uid = null;
    private String uname = null;
    private String upart = null;
    private String upwd = null;
    private String ugrade = null;

    public String getUid() {
        return uid;
    }
    public void setUid(String uid) {
        this.uid = uid;
    }
    public String getUname() {
        return uname;
    }
    public void setUname(String uname) {
        this.uname = uname;
    }
    public String getUpart() {
        return upart;
    }
    public void setUpart(String upart) {
        this.upart = upart;
    }
    public String getUpwd() {
        return upwd;
    }
    public void setUpwd(String upwd) {
        this.upwd = upwd;
    }
    public String getUgrade() {
        return ugrade;
    }
    public void setUgrade(String ugrade) {
        this.ugrade = ugrade;
    }
}
profile
공부하는 개발자

0개의 댓글