자바 미니 프로젝트
프로젝트 인원: 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;
}
}