관리 메뉴

nkdk의 세상

자바 Language 22일째 1번 본문

My Programing/JAVA

자바 Language 22일째 1번

nkdk 2008. 3. 8. 01:17
package db;

import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.*;
import javax.swing.event.*;

public class ScrollMon1 extends JPanel implements ActionListener {
PopupMenu popup;
Connection conn;
Statement stmt, stmt2;
ResultSet rs, rs2;
JTextField txtSabun =new JTextField("",3), txtIrum=new JTextField("",10),
txtBuser=new JTextField("",10), txtPhone=new JTextField("",12), txtJik=new JTextField("",6);
JLabel jl, toplab=new JLabel("s");;
int isis;
JButton btnf, btnp, btnn, btnl, btns;
String str, fir="", las="", sl;
JTextArea jta=new JTextArea(15,30);;

public ScrollMon1() {
init();
accDb(1);
}

public void init(){
txtSabun=new JTextField("",3);
txtJik=new JTextField("",10);
txtIrum=new JTextField("",8);
JPanel pn=new JPanel();
pn.setLayout(new BorderLayout());
JPanel pn1=new JPanel();
pn1.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
pn1.setLayout(new BorderLayout());
pn1.add(toplab, "Center");
JPanel pn2=new JPanel();
JPanel pn21=new JPanel();
btnf=new JButton("처음");
btnp=new JButton("이전");
btnn=new JButton("다음");
btnl=new JButton("마지막");
btns=new JButton("검색");
jl = new JLabel("사번"); pn21.add(jl); pn21.add(txtSabun);
jl = new JLabel("이름"); pn21.add(jl); pn21.add(txtIrum);
JPanel pn22=new JPanel();
jl = new JLabel("부서명"); pn22.add(jl); pn22.add(txtBuser);
jl = new JLabel("전화"); pn22.add(jl); pn22.add(txtPhone);
JPanel pn23=new JPanel();
jl = new JLabel("직급"); pn23.add(jl); pn23.add(txtJik);
JPanel pn24=new JPanel();
pn24.add(btnf); pn24.add(btnn); pn24.add(btnp); pn24.add(btnl); pn24.add(btns);
pn2.setLayout(new GridLayout(4,1));
pn2.add(pn21,"Center"); pn2.add(pn22,"Center"); pn2.add(pn23,BorderLayout.WEST); pn2.add(pn24,"Center");
JPanel pn3=new JPanel();
pn3.setLayout(new FlowLayout());
pn3.add(new JScrollPane(jta));
pn.add(pn1, "North"); pn.add(pn2, "Center"); pn.add(pn3, "South");
btnf.addActionListener(this); btnn.addActionListener(this); btnp.addActionListener(this);
btnl.addActionListener(this); btns.addActionListener(this); this.add(pn);
}

public void accDb(int s) {
if (s==1) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch (Exception e) {
System.out.println("로딩실패: "+e);
return;
}
try {
conn=DriverManager.getConnection("jdbc:odbc:oradbs","SCOTT","TIGER");
}catch (Exception e) {
System.out.println("연결실패: "+e);
return;
}

try {
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select sawon_no, sawon_name, buser_name, buser_tel, sawon_jik from sawon, buser where buser_no = buser_num";
rs=stmt.executeQuery(sql);
isis=0;
while(rs.next())
isis += 1;
toplab.setText("전체 레코드 : "+isis);
}catch (Exception ex) {
JOptionPane.showMessageDialog(this, "sql오류 " +ex);
return;
}

try {stmt.close();
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select sawon_no, sawon_name, buser_name, buser_tel, sawon_jik from sawon, buser where buser_no = buser_num";
rs=stmt.executeQuery(sql);
toplab.setText("전체 레코드 : "+isis);
rs.next();
display(1);
}catch (Exception ex) {
JOptionPane.showMessageDialog(this, "sql오류 " +ex);
return;
}
display(3);
}

if (s==2) {
try {
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select sawon_no, sawon_name, buser_name, buser_tel, sawon_jik from sawon, buser" +
" where buser_no = buser_num and sawon_no >="+ fir+" and sawon_no <= "+las;
rs=stmt.executeQuery(sql);
isis=0;
while(rs.next())
isis += 1;
toplab.setText("전체 레코드 : "+isis);
}catch (Exception ex) {
JOptionPane.showMessageDialog(this, "sql오류 " +ex);
return;
}
try {
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select sawon_no, sawon_name, buser_name, buser_tel, sawon_jik from sawon, buser" +
" where buser_no = buser_num and sawon_no >="+ fir+" and sawon_no <= "+las;
rs=stmt.executeQuery(sql);
rs.next();
display(1);
}catch (Exception ex) {
JOptionPane.showMessageDialog(this, "sql오류 " +ex);
return;
}
display(3);
}
}

public void display(int iii) {
if (iii==1)
try {
txtSabun.setText(rs.getString("sawon_no"));
txtIrum.setText(rs.getString("sawon_name"));
txtBuser.setText(rs.getString("buser_name"));
txtPhone.setText(rs.getString("buser_tel"));
txtJik.setText(rs.getString("sawon_jik"));
sl=rs.getString("sawon_name");
}catch (Exception e) {
JOptionPane.showMessageDialog(this, "레코드의 처음 또는 끝!!!" +e);
}

if (iii==2)
try {
jta.append(rs2.getString("gogek_name")+" "+rs2.getString("gogek_tel")+" "+rs2.getString("gogek_jumin")+"\n");
}catch (Exception e) {
jta.setText("고객을 가지고 있지 않습니다.");
}
if (iii==3)
try {
stmt2=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql2="select gogek_name, gogek_tel, gogek_jumin from sawon, gogek" +
" where sawon_no = gogek_damsano and sawon_name='"+sl+"'";
rs2=stmt2.executeQuery(sql2);
jta.setText("");
while (rs2.next())
display(2);
}catch (Exception e) {
}
}

public static void main(String[] args) {
ScrollMon1 ds=new ScrollMon1();
JFrame frame=new JFrame(); // 액자를 걸수 있는 큰 벽이고 jframe은 컨테이너를 이용한다.
//frame.getContentPane().add(ds); // 컨텐트 페인을 이용해서 벽에 건다 . center 라는 말이 생략된거랑 마찬가지다.
frame.add(ds); // 위에것과 비슷하다.
frame.setBounds(200,200,400,530);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent ae) {
try{
if (ae.getActionCommand().equals("처음")) {rs.first();
}
else if (ae.getActionCommand().equals("이전")) {rs.previous();
}
else if (ae.getActionCommand().equals("다음")) {rs.next();}
else if (ae.getActionCommand().equals("마지막")){ rs.last();}
display(1);
display(3);

if (ae.getActionCommand().equals("검색")) {
str=JOptionPane.showInputDialog(this, "보고자 하는 사번을 입력하세요.", "정확히 입력하세요.", JOptionPane.WARNING_MESSAGE);
if(str.equals("")) {
JOptionPane.showMessageDialog(this, "입력이 되지 않았습니다.");
} else {
int m=0;
for(int i=0;str.length() > i;i++)
if (str.charAt(i)=='-') m = i;
fir = str.substring(0,m);
las = str.substring(m+1,str.length());
accDb(2);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}

package db;

import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.*;
import javax.swing.event.*;

public class dbScroll extends JPanel implements ActionListener {
Connection conn;
Statement stmt;
ResultSet rs;
JTextField txtBun, txtIrum, txtJik;
JButton btnf, btnp, btnn, btnl;

public dbScroll() {
init();
accDb();
}

public void init(){
txtBun=new JTextField("",3);
txtJik=new JTextField("",10);
txtIrum=new JTextField("",8);
JPanel pn1=new JPanel(); // 기본적으로 플로우 레이 아웃임.
pn1.add(txtBun);
pn1.add(txtIrum);
pn1.add(txtJik);
add("North", pn1);

btnf=new JButton("처음");
btnp=new JButton("이전");
btnn=new JButton("다음");
btnl=new JButton("마지막");
btnf.addActionListener(this);
btnn.addActionListener(this);
btnp.addActionListener(this);
btnl.addActionListener(this);

JPanel pn2=new JPanel();
pn2.add(btnf);
pn2.add(btnn);
pn2.add(btnp);
pn2.add(btnl);

add(pn2);
}

public void accDb() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch (Exception e) {
System.out.println("로딩실패: "+e);
return;
}
try {
conn=DriverManager.getConnection("jdbc:odbc:oradbs","SCOTT","TIGER");


}catch (Exception e) {
System.out.println("연결실패: "+e);
return;
}
try {
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select sawon_no, sawon_name, sawon_jik from sawon order by sawon_no";
rs=stmt.executeQuery(sql);
rs.next();
display();
}catch (Exception ex) {
JOptionPane.showMessageDialog(this, "sql오류 " +ex);
return;
}
}

public void display() {
try {
txtBun.setText(rs.getString("sawon_no"));
txtIrum.setText(rs.getString("sawon_name"));
txtJik.setText(rs.getString("sawon_jik"));
}catch (Exception e) {
JOptionPane.showMessageDialog(this, "레코드의 처음 또는 끝!!!" +e);
}
}

public static void main(String[] args) {
dbScroll ds=new dbScroll();
JFrame frame=new JFrame(); // 액자를 걸수 있는 큰 벽이고 jframe은 컨테이너를 이용한다.
frame.getContentPane().add(ds); // 컨텐트 페인을 이용해서 벽에 건다 . center 라는 말이 생략된거랑 마찬가지다.
frame.setBounds(200,200,300,200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent ae) {
try{
if (ae.getActionCommand().equals("처음")) rs.first();
else if (ae.getActionCommand().equals("이전")) rs.previous();
else if (ae.getActionCommand().equals("다음")) rs.next();
else if (ae.getActionCommand().equals("마지막")) rs.last();
display();
} catch (SQLException e) {
e.printStackTrace();
}
}
}