8일차 Swing02 클래스 (이벤트 처리방법 3가지, JFrame, JTextField에 DML 기능 구현 : select, insert)
2014학년도 겨울 심화학기/JAVA
Written by 긍지높은취객 on 2014. 12. 17. 15:47
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
// 독립 클래스 이용 (이벤트 처리)
/*class MyActionListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
try
{
Class.forName("com.mysql.jdbc.Driver"); // jdbc 드라이버 로드
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ sampledb", "root", "1234"); // 연결
System.out.println("JDBC Connection Complete!");
Statement stmt = conn.createStatement();
// insert문 실행
// stmt.executeUpdate("insert into student values('천준영', '정보통신학', '2014074003')");
// update문 실행
// stmt.executeUpdate("update student set id='2014000001' where name='최규식'");
// delete문 실행
// stmt.executeUpdate("delete from student where id='2014000001'");
// select문 실행
ResultSet rs = stmt.executeQuery("select * from student"); // SQL문이 rs에 저장된다.
while(rs.next())
{
System.out.print(rs.getString("name") + "\t"); // 이름 출력
System.out.print(rs.getString(" dept") + "\t"); // 학과 출력
System.out.print(rs.getString("id") + "\n"); // 학번 출력
}
rs.close(); // ResultSet을 닫는다.
conn.close(); // Connection을 닫는다. (메모리 자원낭비 방지)
}
catch(Exception ex)
{
System.out.println(ex.getStackTrace());
}
}
}*/
public class Swing02 extends JFrame
{
Swing02()
{
try
{
UIManager. setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
}
catch (Exception e )
{
e.printStackTrace();
}
setTitle( "학생관리" );
setDefaultCloseOperation( JFrame. EXIT_ON_CLOSE);
setLayout( new FlowLayout( FlowLayout. LEFT)); // 레이아웃 설정
add( new JLabel( "이름 : "));
JTextField name = new JTextField(10);
add( name);
add( new JLabel( "학과 : "));
JTextField dept = new JTextField(10);
add( dept);
add( new JLabel( "학번 : "));
JTextField id = new JTextField(10);
add( id);
JTextArea ta = new JTextArea( "", 5, 30); // 텍스트에어리어 생성
add( new JScrollPane(ta )); // 스크롤 적용
JButton list = new JButton( "목록"); // // 'List'버튼 생성
add( list);
JButton insert = new JButton( "등록"); // 'Insert'버튼 생성
add( insert);
JButton update = new JButton( "수정"); // 'update'버튼 생성
add( update);
JButton delete = new JButton( "삭제"); // 'delete'버튼 생성
add( delete);
// ----------------------------------------------------------------------------------
// 익명 클래스 이용 (이벤트 처리) -> 목록 처리
list.addActionListener( new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
try
{
Class. forName("com.mysql.jdbc.Driver"); // jdbc 드라이버 로드
Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/sampledb" , "root", "1234" ); // 연결
System. out.println("JDBC Connection Complete!");
Statement stmt = conn.createStatement();
// select문 실행
ResultSet rs = stmt.executeQuery("select * from student" ); // SQL문이 rs에 저장된다.
ta.setText( ""); // 텍스트에어리어 초기화
ta.append( "이름\t");
ta.append( "학과\t\t");
ta.append( "학번\n");
ta.append( "============================================\n" );
while(rs .next())
{
/*System.out.print(rs.getString("name") + "\t"); // 이름 출력
System.out.print(rs.getString(" dept") + "\t"); // 학과 출력
System.out.print(rs.getString("id") + "\n"); // 학번 출력*/
ta.append( rs.getString( "name") + "\t" );
ta.append( rs.getString( "dept") + "\t");
ta.append( rs.getString( "id") + "\n");
}
rs.close(); // ResultSet을 닫는다.
conn.close(); // Connection을 닫는다. (메모리 자원낭비 방지)
}
catch(Exception ex )
{
System. out.println(ex .getStackTrace());
}
}
});
// 익명 클래스 이용2 (이벤트 처리) -> 등록 처리
insert.addActionListener( new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
try
{
Class. forName("com.mysql.jdbc.Driver"); // jdbc 드라이버 로드
Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/sampledb" , "root" , "1234" ); // 연결
System. out.println("JDBC Connection Complete!");
Statement stmt = conn.createStatement();
String n = name.getText();
String d = dept.getText();
String i = id.getText();
// insert문 실행
int result = stmt.executeUpdate("insert into student values('"+n+"','"+ d+ "','"+i +"')" );
ta.setText( "");
if( result == 1)
{
ta.append( "Insert Complete!");
}
conn.close();
}
catch(Exception ex )
{
// System.out.println(ex.getStackTrace());
System. out.println(ex .getMessage());
}
}
});
// ----------------------------------------------------------------------------------
setResizable( false); // 화면 크기 고정
setSize(350, 225); // 화면 크기 설정
setVisible( true); // 화면 출력 설정
}
// 내부 클래스 이용 (이벤트 처리)
/*class MyActionListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
try
{
Class.forName("com.mysql.jdbc.Driver"); // jdbc 드라이버 로드
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ sampledb", "root", "1234"); // 연결
System.out.println("JDBC Connection Complete!");
Statement stmt = conn.createStatement();
// insert문 실행
// stmt.executeUpdate("insert into student values('천준영', '정보통신학', '2014074003')");
// update문 실행
// stmt.executeUpdate("update student set id='2014000001' where name='최규식'");
// delete문 실행
// stmt.executeUpdate("delete from student where id='2014000001'");
// select문 실행
ResultSet rs = stmt.executeQuery("select * from student"); // SQL문이 rs에 저장된다.
while(rs.next())
{
System.out.print(rs.getString("name") + "\t"); // 이름 출력
System.out.print(rs.getString(" dept") + "\t"); // 학과 출력
System.out.print(rs.getString("id") + "\n"); // 학번 출력
}
rs.close(); // ResultSet을 닫는다.
conn.close(); // Connection을 닫는다. (메모리 자원낭비 방지)
}
catch(Exception ex)
{
System.out.println(ex.getStackTrace());
}
}
}*/
public static void main(String [] args)
{
new Swing02(); // 생성자 호출
}
}
'2014학년도 겨울 심화학기 > JAVA' 카테고리의 다른 글
10일차 Swing02 클래스 (JDBC/Statement 연결 구문 위치변경, 주소칼럼 추가, 과제) (0) | 2014.12.19 |
---|---|
9일차 Swing02 클래스 (DML 모두 구현, Alert Dialog / 확인창 구현) (0) | 2014.12.18 |
7일차 Swing02 클래스 (SQL문 연동 및 DML문 작성 /JFrame, JTextField, JLabel 생성) (0) | 2014.12.16 |
7일차 Student.sql (샘플DB 생성, JAVA와 연동) (0) | 2014.12.16 |
6일차 Swing02 클래스 (JDBC 연동) (0) | 2014.12.15 |