본문으로 바로가기
반응형

GUI를 만드는 법과 데이터베이스를 연동하는 법을 배웠으니 두개를 함께 조합해서 AWT 리스트 컨트롤과 버튼을 만들고, 버튼을 누르면 데이터베이스의 내용을 불러와 리스트에 뿌려주는 간단한 어플리케이션을 작성해보았다.


1. 필요한 패키지를 import하기

java.sql java.awt.* java.awt.event.* 패키지를 불러온다. 첫번째 java.sql 은 이름에서 알 수 있듯 데이터베이스 관련 패키지이고, java.awt는 GUI 작성 관련 패키지, java.awt.event.*는 GUI 컴포넌트에 동작을 할당하기 위해 필요한 패키지이다. 


2. 내용 작성

자세한 내용은 소스 내에 주석처리를 해두었으니 참고.

import java.sql.*;
import java.awt.*;
import java.awt.event.*;

public class testprj {

    // 프레임 객체 설정
    Frame frame = new Frame("DB에서 데이터 불러오기");
    
    // 버튼, 리스트 컨트롤 선언
    List hymnList = new List();
    Button loadBtn = new Button("불러오기");
    
    public void createFrame()
    {
        // 레이아웃 매니저를 사용하지 않기
        frame.setLayout(null);
        
        // 프레임 크기 지정
        frame.setSize(340, 400);
        
        // 종료 버튼에 동작을 할당한다.
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent windowEvent) {
                System.exit(0);
            }
        });
        
        // 컴포넌트 크기, 위치 설정
        loadBtn.setBounds(20,30,300,40);
        hymnList.setBounds(20,80,300,300);
        
        // 버튼 이벤트 세팅
        loadBtn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                
                hymnList.removeAll(); // 리스트 내용을 전부 제거한다.
                
                try{
                    Connection con = null;
                    
                    con = DriverManager.getConnection("jdbc:mysql:///*DB주소*/","/*아이디*/","/*비밀번호*/");
                    
                    // Statement는 정적 SQL문을 실행하고 결과를 반환받기 위한 객체다.
                    //Statement하나당 한개의 ResultSet 객체만을 열 수 있다.
                    java.sql.Statement st = null;
                    ResultSet result = null;
                    st = con.createStatement();
                    st.execute("use /*DB 이름*/;"); // 사용할 DB를 선택한다.
                    // executeQuery : 쿼리를 실행하고 결과를 ResultSet 객체로 반환한다.
                    result = st.executeQuery("/*데이터를 받아올 쿼리*/");
                    
                    // 결과를 하나씩 출력한다.
                    while (result.next()){
                        String str = result.getNString(1);
                        hymnList.add(str); // 리스트에 데이터를 추가한다.
                    }
                }catch(SQLException sqle){
                    System.out.println("SQLException: " + sqle.getMessage());
                    System.out.println("SQLState: " + sqle.getSQLState());
                }
            }
        });
                
        //프레임에 컴포넌트 추가
        frame.add(loadBtn);
        frame.add(hymnList);
        
        //프레임 보이기
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        //프레임 열기
        testprj frm = new testprj();
        frm.createFrame();
    }
}


3. 결과

버튼 클릭 전버튼 클릭 후


잘 된다.

반응형

'프로그래밍 스터디 > Java' 카테고리의 다른 글

자바 GUI 화면 구성하기  (0) 2017.02.15
자바 GUI 개발하기  (0) 2017.02.15
자바에서 MySQL 사용하기  (0) 2017.02.14
자바 공부 시작  (0) 2017.02.14