본문 바로가기

교육

java(자바) 레코드 이동 예제

반응형


packagepack.db;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.Statement;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

publicclassDbTest6RecMoveextendsJFrameimplementsActionListener{

       privateJButtonbtnF,btnP,btnN,btnL;

       privateJTextFieldtxtNo,txtName;

       

       privateConnectionconn;

       privateStatementstmt;

       privateResultSetrs;

       

       publicDbTest6RecMove() {

              setTitle("레코드 이동");

              

              layInit();

              accDb();

              

              setBounds(200,200,300,250);

              setVisible(true);

              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       }

       

       privatevoidlayInit() {// 레이아웃

              txtNo=newJTextField(" ",5);

              txtName=newJTextField("",10);

              txtNo.setEditable(false);// 읽기만 가능하게

              txtName.setEditable(false);// 읽기만 가능하게

              

              JPanelpanel1=newJPanel();

              panel1.add(newJLabel("고객번호"));

              panel1.add(txtNo);

              panel1.add(newJLabel("이름"));

              panel1.add(txtName);

              add("North",panel1);

              

              btnF=newJButton("|<<");

              btnP=newJButton("<");

              btnN=newJButton(">");

              btnL=newJButton(">>|");

              JPanelpanel2=newJPanel();

              panel2.add(btnF);

              panel2.add(btnP);

              panel2.add(btnN);

              panel2.add(btnL);

              add("Center",panel2);

              

              btnF.addActionListener(this);

              btnP.addActionListener(this);

              btnN.addActionListener(this);

              btnL.addActionListener(this);

              

              

       }

       

       privatevoidaccDb() {

              try{

                     Class.forName("oracle.jdbc.driver.OracleDriver");

                     

                     conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");

                     stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

                                                                     ResultSet.CONCUR_READ_ONLY);// 레코드 방향이 역방향도 가능해짐

                     

                     Stringsql="select gogek_no, gogek_name from gogek order by gogek_no asc";

                     rs=stmt.executeQuery(sql);

                     rs.next();

                     displayData();

                           

                     }catch(Exceptione) {

                     System.out.println("accDb err:"+e);

                     }

       }

       

       privatevoiddisplayData() {

              try{

                     txtNo.setText(rs.getString("gogek_no"));

                     txtName.setText(rs.getString("gogek_name"));

                                  

              }catch(Exceptione) {

                     // System.out.println("displayDate err  : " + e);

                     JOptionPane.showMessageDialog(this,"자료의 처음 또는 끝에 도달하였습니다");

              }

       }

       

       @Override

       publicvoidactionPerformed(ActionEventarg0) {

              try{

                     if(arg0.getSource() ==btnF)rs.first();

                     elseif(arg0.getSource() ==btnP)rs.previous();

                     elseif(arg0.getSource() ==btnN)rs.next();

                     elseif(arg0.getSource() ==btnL)rs.last();

                     

                     displayData();

              }catch(Exceptione) {

                     //TODO: handle exception

              }

              

       }

       publicstaticvoidmain(String[]args) {

              newDbTest6RecMove();

       }

}