관리 메뉴

nalaolla

JDBC_간단게시판 본문

JAVA/26. JDBC

JDBC_간단게시판

날아올라↗↗ 2015. 12. 9. 11:51
728x90

Creating a Table

오라클 스키마에 해당 테이블 등록

CREATE TABLE "JAVA_PROJECT"."BOARD" 
   (	"NUM" NUMBER, 
	"TITLE" VARCHAR2(50 BYTE), 
	"CONTENT" VARCHAR2(2000 BYTE), 
	"WRITER" VARCHAR2(20 BYTE), 
	"REGDATE" DATE
   );


Creating a Package

1. test.com.board.control
2. test.com.board.model
3. test.com.board.view


Package test.com.board.control

BoardDAO.java

  1. package test.com.board.control;
  2.  
  3. import java.util.List;
  4.  
  5. public interface BoardDAO {
  6.    
  7.     public int insert(BoardVO vo);
  8.    
  9.     public int update(BoardVO vo);
  10.    
  11.     public int delete(BoardVO vo);
  12.    
  13.     public BoardVO search(BoardVO vo);
  14.    
  15.     public List<BoardVO> select();
  16.    
  17.     public void search(String search, String searchString);
  18.    
  19. }

BoardVO.java

  1. package test.com.board.control;
  2.  
  3. import java.util.Date;
  4.  
  5. public class BoardVO {
  6.  
  7.     int num;
  8.     String title;
  9.     String content;
  10.     String name;
  11.     Date regDate;
  12.  
  13.     public int getNum() {
  14.         return num;
  15.     }
  16.  
  17.     public void setNum(int num) {
  18.         this.num = num;
  19.     }
  20.  
  21.     public String getTitle() {
  22.         return title;
  23.     }
  24.  
  25.     public void setTitle(String title) {
  26.         this.title = title;
  27.     }
  28.  
  29.     public String getContent() {
  30.         return content;
  31.     }
  32.  
  33.     public void setContent(String content) {
  34.         this.content = content;
  35.     }
  36.  
  37.     public String getName() {
  38.         return name;
  39.     }
  40.  
  41.     public void setName(String name) {
  42.         this.name = name;
  43.     }
  44.  
  45.     public Date getRegDate() {
  46.         return regDate;
  47.     }
  48.  
  49.     public void setRegDate(Date regDate) {
  50.         this.regDate = regDate;
  51.     }
  52.  
  53. }


Package test.com.board.model

BoardDAOImpl.java

  1. package test.com.board.model;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10.  
  11. import test.com.board.control.BoardDAO;
  12. import test.com.board.control.BoardVO;
  13. import test.com.board.view.BoardList2;
  14.  
  15. public class BoardDAOImpl implements BoardDAO {
  16.  
  17.     Connection conn;
  18.     PreparedStatement pstmt;
  19.     ResultSet rs;
  20.  
  21.     public static final String DRIVER_NAME = "oracle.jdbc.OracleDriver";
  22.     public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";
  23.     public static final String USERID = "java_project";
  24.     public static final String USERPWD = "hi123456";
  25.  
  26.     public BoardDAOImpl() {
  27.         try {
  28.             Class.forName(DRIVER_NAME);
  29.            
  30.         } catch (ClassNotFoundException e) {
  31.             // TODO Auto-generated catch block
  32.             e.printStackTrace();
  33.             System.out.println("drive connect failed...");
  34.         }
  35.     }
  36.  
  37.     @Override
  38.     public int insert(BoardVO vo) {
  39.         try {
  40.             conn = DriverManager.getConnection(URL, USERID, USERPWD);
  41.             String sql = "insert into board(num, title, content, writer, regdate) values (SEQ_BOARD_NUM.NEXTVAL, ?, ?, ?, SYSDATE )";
  42.             pstmt = conn.prepareStatement(sql);
  43.             pstmt.setString(1, vo.getTitle());
  44.             pstmt.setString(2, vo.getContent());
  45.             pstmt.setString(3, vo.getName());
  46.  
  47.             pstmt.executeUpdate();
  48.  
  49.         } catch (SQLException e) {
  50.             // TODO Auto-generated catch block
  51.             e.printStackTrace();
  52.         } finally {
  53.             try {
  54.                 conn.close();
  55.             } catch (SQLException e) {
  56.                 // TODO Auto-generated catch block
  57.                 e.printStackTrace();
  58.             }
  59.         }
  60.         return 0;
  61.     }
  62.  
  63.     @Override
  64.     public int update(BoardVO vo) {
  65.         try {
  66.             conn = DriverManager.getConnection(URL, USERID, USERPWD);
  67.             String sql = "update board set title=?, content=?, writer=?, regdate=SYSDATE where num=?";
  68.             pstmt = conn.prepareStatement(sql);
  69.             pstmt.setString(1, vo.getTitle());
  70.             pstmt.setString(2, vo.getContent());
  71.             pstmt.setString(3, vo.getName());
  72.             pstmt.setInt(4, vo.getNum());
  73.  
  74.             pstmt.executeUpdate();
  75.  
  76.         } catch (SQLException e) {
  77.             // TODO Auto-generated catch block
  78.             e.printStackTrace();
  79.         } finally {
  80.             try {
  81.                 conn.close();
  82.             } catch (SQLException e) {
  83.                 // TODO Auto-generated catch block
  84.                 e.printStackTrace();
  85.             }
  86.         }
  87.         return 0;
  88.     }
  89.  
  90.     @Override
  91.     public int delete(BoardVO vo) {
  92.         try {
  93.             conn = DriverManager.getConnection(URL, USERID, USERPWD);
  94.             String sql = "delete from board where num=?";
  95.             pstmt = conn.prepareStatement(sql);
  96.             pstmt.setInt(1, vo.getNum());
  97.  
  98.             pstmt.executeUpdate();
  99.  
  100.         } catch (SQLException e) {
  101.             // TODO Auto-generated catch block
  102.             e.printStackTrace();
  103.         } finally {
  104.             try {
  105.                 conn.close();
  106.             } catch (SQLException e) {
  107.                 // TODO Auto-generated catch block
  108.                 e.printStackTrace();
  109.             }
  110.         }
  111.         return 0;
  112.     }
  113.  
  114.     @Override
  115.     public BoardVO search(BoardVO vo) {
  116.  
  117.         return null;
  118.     }
  119.  
  120.     @Override
  121.     public List<BoardVO> select() {
  122.  
  123.         List<BoardVO> list = new ArrayList<BoardVO>();
  124.  
  125.         try {
  126.             conn = DriverManager.getConnection(URL, USERID, USERPWD);
  127.             String sql = "select num, title, content, writer, regdate from board order by num desc";
  128.             pstmt = conn.prepareStatement(sql);
  129.             rs = pstmt.executeQuery();
  130.  
  131.             while (rs.next()) {
  132.                 BoardVO vo = new BoardVO();
  133.                 vo.setNum(rs.getInt("num"));
  134.                 vo.setTitle(rs.getString("title"));
  135.                 vo.setContent(rs.getString("content"));
  136.                 vo.setName(rs.getString("writer"));
  137.                 vo.setRegDate(rs.getDate("regdate"));
  138.  
  139.                 list.add(vo);
  140.                
  141.             }
  142.  
  143.         } catch (SQLException e) {
  144.             // TODO Auto-generated catch block
  145.             e.printStackTrace();
  146.         } finally {
  147.             try {
  148.                 rs.close();
  149.             } catch (SQLException e) {
  150.                 // TODO Auto-generated catch block
  151.                 e.printStackTrace();
  152.             }
  153.  
  154.             try {
  155.                 pstmt.close();
  156.             } catch (SQLException e) {
  157.                 // TODO Auto-generated catch block
  158.                 e.printStackTrace();
  159.             }
  160.  
  161.             try {
  162.                 conn.close();
  163.             } catch (SQLException e) {
  164.                 // TODO Auto-generated catch block
  165.                 e.printStackTrace();
  166.             }
  167.         }
  168.  
  169.         return list;
  170.     }
  171.  
  172.     @Override
  173.     public void search(String search, String searchString) {
  174.         List<BoardVO> list = new ArrayList<BoardVO>();
  175.  
  176.         try {
  177.             conn = DriverManager.getConnection(URL, USERID, USERPWD);
  178.             String sql = "select num, title, content, writer, regdate from board where " + search + " like '%"
  179.                     + searchString + "%' order by num desc";
  180.             pstmt = conn.prepareStatement(sql);
  181.             rs = pstmt.executeQuery();
  182.  
  183.             while (rs.next()) {
  184.                 BoardVO vo = new BoardVO();
  185.                 vo.setNum(rs.getInt("num"));
  186.                 vo.setTitle(rs.getString("title"));
  187.                 vo.setContent(rs.getString("content"));
  188.                 vo.setName(rs.getString("writer"));
  189.                 vo.setRegDate(rs.getDate("regdate"));
  190.  
  191.                 list.add(vo);
  192.                
  193.             }
  194.            
  195.             new BoardList2(list);
  196.  
  197.         } catch (SQLException e) {
  198.             // TODO Auto-generated catch block
  199.             e.printStackTrace();
  200.         } finally {
  201.             try {
  202.                 rs.close();
  203.             } catch (SQLException e) {
  204.                 // TODO Auto-generated catch block
  205.                 e.printStackTrace();
  206.             }
  207.  
  208.             try {
  209.                 pstmt.close();
  210.             } catch (SQLException e) {
  211.                 // TODO Auto-generated catch block
  212.                 e.printStackTrace();
  213.             }
  214.  
  215.             try {
  216.                 conn.close();
  217.             } catch (SQLException e) {
  218.                 // TODO Auto-generated catch block
  219.                 e.printStackTrace();
  220.             }
  221.         }
  222.  
  223.        
  224.     }
  225.  
  226. }




Package test.com.board.view

BoardDAOImpl.java

  1. package test.com.board.model;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10.  
  11. import test.com.board.control.BoardDAO;
  12. import test.com.board.control.BoardVO;
  13. import test.com.board.view.BoardList2;
  14.  
  15. public class BoardDAOImpl implements BoardDAO {
  16.  
  17.     Connection conn;
  18.     PreparedStatement pstmt;
  19.     ResultSet rs;
  20.  
  21.     public static final String DRIVER_NAME = "oracle.jdbc.OracleDriver";
  22.     public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";
  23.     public static final String USERID = "java_project";
  24.     public static final String USERPWD = "hi123456";
  25.  
  26.     public BoardDAOImpl() {
  27.         try {
  28.             Class.forName(DRIVER_NAME);
  29.            
  30.         } catch (ClassNotFoundException e) {
  31.             // TODO Auto-generated catch block
  32.             e.printStackTrace();
  33.             System.out.println("drive connect failed...");
  34.         }
  35.     }
  36.  
  37.     @Override
  38.     public int insert(BoardVO vo) {
  39.         try {
  40.             conn = DriverManager.getConnection(URL, USERID, USERPWD);
  41.             String sql = "insert into board(num, title, content, writer, regdate) values (SEQ_BOARD_NUM.NEXTVAL, ?, ?, ?, SYSDATE )";
  42.             pstmt = conn.prepareStatement(sql);
  43.             pstmt.setString(1, vo.getTitle());
  44.             pstmt.setString(2, vo.getContent());
  45.             pstmt.setString(3, vo.getName());
  46.  
  47.             pstmt.executeUpdate();
  48.  
  49.         } catch (SQLException e) {
  50.             // TODO Auto-generated catch block
  51.             e.printStackTrace();
  52.         } finally {
  53.             try {
  54.                 conn.close();
  55.             } catch (SQLException e) {
  56.                 // TODO Auto-generated catch block
  57.                 e.printStackTrace();
  58.             }
  59.         }
  60.         return 0;
  61.     }
  62.  
  63.     @Override
  64.     public int update(BoardVO vo) {
  65.         try {
  66.             conn = DriverManager.getConnection(URL, USERID, USERPWD);
  67.             String sql = "update board set title=?, content=?, writer=?, regdate=SYSDATE where num=?";
  68.             pstmt = conn.prepareStatement(sql);
  69.             pstmt.setString(1, vo.getTitle());
  70.             pstmt.setString(2, vo.getContent());
  71.             pstmt.setString(3, vo.getName());
  72.             pstmt.setInt(4, vo.getNum());
  73.  
  74.             pstmt.executeUpdate();
  75.  
  76.         } catch (SQLException e) {
  77.             // TODO Auto-generated catch block
  78.             e.printStackTrace();
  79.         } finally {
  80.             try {
  81.                 conn.close();
  82.             } catch (SQLException e) {
  83.                 // TODO Auto-generated catch block
  84.                 e.printStackTrace();
  85.             }
  86.         }
  87.         return 0;
  88.     }
  89.  
  90.     @Override
  91.     public int delete(BoardVO vo) {
  92.         try {
  93.             conn = DriverManager.getConnection(URL, USERID, USERPWD);
  94.             String sql = "delete from board where num=?";
  95.             pstmt = conn.prepareStatement(sql);
  96.             pstmt.setInt(1, vo.getNum());
  97.  
  98.             pstmt.executeUpdate();
  99.  
  100.         } catch (SQLException e) {
  101.             // TODO Auto-generated catch block
  102.             e.printStackTrace();
  103.         } finally {
  104.             try {
  105.                 conn.close();
  106.             } catch (SQLException e) {
  107.                 // TODO Auto-generated catch block
  108.                 e.printStackTrace();
  109.             }
  110.         }
  111.         return 0;
  112.     }
  113.  
  114.     @Override
  115.     public BoardVO search(BoardVO vo) {
  116.  
  117.         return null;
  118.     }
  119.  
  120.     @Override
  121.     public List<BoardVO> select() {
  122.  
  123.         List<BoardVO> list = new ArrayList<BoardVO>();
  124.  
  125.         try {
  126.             conn = DriverManager.getConnection(URL, USERID, USERPWD);
  127.             String sql = "select num, title, content, writer, regdate from board order by num desc";
  128.             pstmt = conn.prepareStatement(sql);
  129.             rs = pstmt.executeQuery();
  130.  
  131.             while (rs.next()) {
  132.                 BoardVO vo = new BoardVO();
  133.                 vo.setNum(rs.getInt("num"));
  134.                 vo.setTitle(rs.getString("title"));
  135.                 vo.setContent(rs.getString("content"));
  136.                 vo.setName(rs.getString("writer"));
  137.                 vo.setRegDate(rs.getDate("regdate"));
  138.  
  139.                 list.add(vo);
  140.                
  141.             }
  142.  
  143.         } catch (SQLException e) {
  144.             // TODO Auto-generated catch block
  145.             e.printStackTrace();
  146.         } finally {
  147.             try {
  148.                 rs.close();
  149.             } catch (SQLException e) {
  150.                 // TODO Auto-generated catch block
  151.                 e.printStackTrace();
  152.             }
  153.  
  154.             try {
  155.                 pstmt.close();
  156.             } catch (SQLException e) {
  157.                 // TODO Auto-generated catch block
  158.                 e.printStackTrace();
  159.             }
  160.  
  161.             try {
  162.                 conn.close();
  163.             } catch (SQLException e) {
  164.                 // TODO Auto-generated catch block
  165.                 e.printStackTrace();
  166.             }
  167.         }
  168.  
  169.         return list;
  170.     }
  171.  
  172.     @Override
  173.     public void search(String search, String searchString) {
  174.         List<BoardVO> list = new ArrayList<BoardVO>();
  175.  
  176.         try {
  177.             conn = DriverManager.getConnection(URL, USERID, USERPWD);
  178.             String sql = "select num, title, content, writer, regdate from board where " + search + " like '%"
  179.                     + searchString + "%' order by num desc";
  180.             pstmt = conn.prepareStatement(sql);
  181.             rs = pstmt.executeQuery();
  182.  
  183.             while (rs.next()) {
  184.                 BoardVO vo = new BoardVO();
  185.                 vo.setNum(rs.getInt("num"));
  186.                 vo.setTitle(rs.getString("title"));
  187.                 vo.setContent(rs.getString("content"));
  188.                 vo.setName(rs.getString("writer"));
  189.                 vo.setRegDate(rs.getDate("regdate"));
  190.  
  191.                 list.add(vo);
  192.                
  193.             }
  194.            
  195.             new BoardList2(list);
  196.  
  197.         } catch (SQLException e) {
  198.             // TODO Auto-generated catch block
  199.             e.printStackTrace();
  200.         } finally {
  201.             try {
  202.                 rs.close();
  203.             } catch (SQLException e) {
  204.                 // TODO Auto-generated catch block
  205.                 e.printStackTrace();
  206.             }
  207.  
  208.             try {
  209.                 pstmt.close();
  210.             } catch (SQLException e) {
  211.                 // TODO Auto-generated catch block
  212.                 e.printStackTrace();
  213.             }
  214.  
  215.             try {
  216.                 conn.close();
  217.             } catch (SQLException e) {
  218.                 // TODO Auto-generated catch block
  219.                 e.printStackTrace();
  220.             }
  221.         }
  222.  
  223.        
  224.     }
  225.  
  226. }




Package test.com.board.view

BoardInsert.java

  1. package test.com.board.view;
  2.  
  3. import java.awt.Rectangle;
  4. import java.awt.Toolkit;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. import javax.swing.ImageIcon;
  9. import javax.swing.JButton;
  10. import javax.swing.JFrame;
  11. import javax.swing.JLabel;
  12. import javax.swing.JTextArea;
  13. import javax.swing.JTextField;
  14.  
  15. import test.com.board.control.BoardDAO;
  16. import test.com.board.control.BoardVO;
  17. import test.com.board.model.BoardDAOImpl;
  18.  
  19. public class BoardInsert extends JFrame {
  20.     private JTextField title;
  21.     private JTextField writer;
  22.  
  23.     public BoardInsert() {
  24.         setBounds(new Rectangle(6000450280));
  25.         setTitle("게시글등록");
  26.         setIconImage(Toolkit.getDefaultToolkit().getImage(BoardInsert.class.getResource("/images/icon_editer.png")));
  27.         getContentPane().setLayout(null);
  28.  
  29.         JLabel lblNewLabel = new JLabel("글제목");
  30.         lblNewLabel.setBounds(12255715);
  31.         getContentPane().add(lblNewLabel);
  32.  
  33.         title = new JTextField("글제목입니다.");
  34.         title.setBounds(812234021);
  35.         getContentPane().add(title);
  36.         title.setColumns(10);
  37.  
  38.         JLabel lblNewLabel_1 = new JLabel("글내용");
  39.         lblNewLabel_1.setBounds(12595715);
  40.         getContentPane().add(lblNewLabel_1);
  41.  
  42.         JTextArea textArea = new JTextArea("글내용 글내용..");
  43.         textArea.setLineWrap(true);
  44.         textArea.setRows(5);
  45.         textArea.setBounds(815334069);
  46.         getContentPane().add(textArea);
  47.  
  48.         JLabel lblNewLabel_2 = new JLabel("작성자");
  49.         lblNewLabel_2.setBounds(121405715);
  50.         getContentPane().add(lblNewLabel_2);
  51.  
  52.         writer = new JTextField("daniel,kim");
  53.         writer.setBounds(8113711621);
  54.         getContentPane().add(writer);
  55.         writer.setColumns(10);
  56.  
  57.         JButton btnWrite = new JButton("작성완료");
  58.         btnWrite.setIcon(new ImageIcon(BoardInsert.class.getResource("/images/icon_edit_01.png")));
  59.         btnWrite.setBounds(8118011623);
  60.         btnWrite.addActionListener(new ActionListener() {
  61.  
  62.             @Override
  63.             public void actionPerformed(ActionEvent e) {
  64.                 BoardDAO dao = new BoardDAOImpl();
  65.                 BoardVO vo = new BoardVO();
  66.  
  67.                 String titles = title.getText();
  68.                 String txtarea = textArea.getText();
  69.                 String name = writer.getText();
  70.  
  71.                 vo.setTitle(titles);
  72.                 vo.setContent(txtarea);
  73.                 vo.setName(name);
  74.  
  75.                 dao.insert(vo);
  76.  
  77.             }
  78.         });
  79.         getContentPane().add(btnWrite);
  80.  
  81.         // JButton btnList = new JButton("리스트");
  82.         // btnList.setIcon(new
  83.         // ImageIcon(BoardInsert.class.getResource("/images/icon_docs_01.png")));
  84.         // btnList.setBounds(190, 180, 97, 23);
  85.         // btnList.addActionListener(new ActionListener() {
  86.         //
  87.         // @Override
  88.         // public void actionPerformed(ActionEvent e) {
  89.         // new BoardList();
  90.         // }
  91.         // });
  92.         // getContentPane().add(btnList);
  93.  
  94.         JButton btnClose = new JButton("닫기");
  95.         btnClose.setIcon(new ImageIcon(BoardInsert.class.getResource("/images/icon_stop_01.png")));
  96.         btnClose.setBounds(2091809723);
  97.         btnClose.addActionListener(new ActionListener() {
  98.  
  99.             @Override
  100.             public void actionPerformed(ActionEvent e) {
  101.  
  102.                 setVisible(false);
  103.  
  104.             }
  105.         });
  106.         getContentPane().add(btnClose);
  107.  
  108.         setVisible(true);
  109.  
  110.     }
  111. }


BoardList.java

  1. package test.com.board.view;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Rectangle;
  5. import java.awt.Toolkit;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.awt.event.MouseAdapter;
  9. import java.awt.event.MouseEvent;
  10. import java.util.List;
  11.  
  12. import javax.swing.DefaultComboBoxModel;
  13. import javax.swing.ImageIcon;
  14. import javax.swing.JButton;
  15. import javax.swing.JComboBox;
  16. import javax.swing.JFrame;
  17. import javax.swing.JLabel;
  18. import javax.swing.JScrollPane;
  19. import javax.swing.JTable;
  20. import javax.swing.JTextField;
  21. import javax.swing.table.DefaultTableModel;
  22.  
  23. import test.com.board.control.BoardDAO;
  24. import test.com.board.control.BoardVO;
  25. import test.com.board.model.BoardDAOImpl;
  26.  
  27. public class BoardList extends JFrame {
  28.     private JTable table;
  29.     private JTextField searchString;
  30.     public BoardList() {
  31.         setTitle("Board List");
  32.         setIconImage(Toolkit.getDefaultToolkit().getImage(BoardList.class.getResource("/images/icon_docs_01.png")));
  33.         setBounds(new Rectangle(00600350));
  34.         getContentPane().setLayout(null);
  35.        
  36.         JScrollPane scrollPane = new JScrollPane();
  37.         scrollPane.setBounds(1249560189);
  38.         getContentPane().add(scrollPane);
  39.        
  40.         BoardDAO dao = new BoardDAOImpl();
  41.         List<BoardVO> list = dao.select();
  42.        
  43.         String[] colNames = new String[] {"글번호""제목""내용...""작성자""작성일"};
  44.         Object[][] rowDatas = new Object[list.size()][colNames.length];
  45.        
  46.         for (int i = 0; i < list.size(); i++) {
  47.             rowDatas[i] = new Object[] {
  48.                     list.get(i).getNum(),
  49.                     list.get(i).getTitle(),
  50.                     list.get(i).getContent(),
  51.                     list.get(i).getName(),
  52.                     list.get(i).getRegDate()
  53.             };
  54.         }
  55.         table = new JTable();
  56.         table.setModel(new DefaultTableModel(rowDatas,colNames) {
  57.             boolean[] columnEditables = new boolean[] {
  58.                 falsefalsefalsetruefalse
  59.             };
  60.             public boolean isCellEditable(int row, int column) {
  61.                 return columnEditables[column];
  62.             }
  63.         });
  64.         table.getColumnModel().getColumn(0).setResizable(false);
  65.         table.getColumnModel().getColumn(0).setPreferredWidth(45);
  66.         table.getColumnModel().getColumn(1).setResizable(false);
  67.         table.getColumnModel().getColumn(1).setPreferredWidth(200);
  68.         table.getColumnModel().getColumn(2).setResizable(false);
  69.         table.getColumnModel().getColumn(2).setPreferredWidth(164);
  70.         table.getColumnModel().getColumn(4).setResizable(false);
  71.         table.getColumnModel().getColumn(4).setPreferredWidth(140);
  72.        
  73.         table.addMouseListener(new MouseAdapter() {
  74.             @Override
  75.             public void mouseClicked(MouseEvent e) {
  76.                 // TODO Auto-generated method stub
  77.                 int rowNum = table.getSelectedRow();
  78.                 BoardVO vos = new BoardVO();
  79.                 vos = list.get(rowNum);
  80.                
  81.                 new BoardUpdate(vos);
  82.             }
  83.         });
  84.         scrollPane.setViewportView(table);
  85.        
  86.         JLabel lblNewLabel = new JLabel("검색조건");
  87.         lblNewLabel.setBounds(186205615);
  88.         getContentPane().add(lblNewLabel);
  89.        
  90.         JComboBox comboBox = new JComboBox();
  91.         comboBox.setModel(new DefaultComboBoxModel(new String[] {"title""content""writer"}));
  92.         comboBox.setBounds(244177421);
  93.         getContentPane().add(comboBox);
  94.        
  95.         searchString = new JTextField();
  96.         searchString.setBounds(3301713321);
  97.         getContentPane().add(searchString);
  98.         searchString.setColumns(10);
  99.        
  100.         JButton btnSearch = new JButton("search..");
  101.         btnSearch.setIcon(new ImageIcon(BoardList.class.getResource("/images/icon_search_01.png")));
  102.         btnSearch.setBounds(4661610623);
  103.         btnSearch.addActionListener(new ActionListener() {
  104.            
  105.             @Override
  106.             public void actionPerformed(ActionEvent e) {
  107.                 BoardDAO dao = new BoardDAOImpl();
  108.                 dao.search(String.valueOf(comboBox.getSelectedItem()), searchString.getText());
  109.                
  110.                 setVisible(false);
  111.                
  112.             }
  113.         });
  114.         getContentPane().add(btnSearch);
  115.        
  116.         JLabel lblDesignByDanielkim = new JLabel("design by daniel,kim");
  117.         lblDesignByDanielkim.setIcon(new ImageIcon(BoardList.class.getResource("/images/icon_title_01.png")));
  118.         lblDesignByDanielkim.setForeground(Color.GRAY);
  119.         lblDesignByDanielkim.setBounds(43428613815);
  120.         getContentPane().add(lblDesignByDanielkim);
  121.        
  122.         JButton btnWrite = new JButton("글작성");
  123.         btnWrite.setIcon(new ImageIcon(BoardList.class.getResource("/images/icon_edit_01.png")));
  124.         btnWrite.setBounds(4752489723);
  125.         btnWrite.addActionListener(new ActionListener() {
  126.            
  127.             @Override
  128.             public void actionPerformed(ActionEvent e) {
  129.                 new BoardInsert();
  130.                
  131.             }
  132.         });
  133.        
  134.         getContentPane().add(btnWrite);
  135.        
  136.         setVisible(true);
  137.     }
  138. }



BoardList2.java

  1. package test.com.board.view;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Rectangle;
  5. import java.awt.Toolkit;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.awt.event.MouseAdapter;
  9. import java.awt.event.MouseEvent;
  10. import java.util.List;
  11.  
  12. import javax.swing.DefaultComboBoxModel;
  13. import javax.swing.ImageIcon;
  14. import javax.swing.JButton;
  15. import javax.swing.JComboBox;
  16. import javax.swing.JFrame;
  17. import javax.swing.JLabel;
  18. import javax.swing.JScrollPane;
  19. import javax.swing.JTable;
  20. import javax.swing.JTextField;
  21. import javax.swing.table.DefaultTableModel;
  22.  
  23. import test.com.board.control.BoardDAO;
  24. import test.com.board.control.BoardVO;
  25. import test.com.board.model.BoardDAOImpl;
  26.  
  27. public class BoardList2 extends JFrame {
  28.     private JTable table;
  29.     private JTextField searchString;
  30.     public BoardList2(List<BoardVO> vos) {
  31.         setTitle("Board List");
  32.         setIconImage(Toolkit.getDefaultToolkit().getImage(BoardList2.class.getResource("/images/icon_docs_01.png")));
  33.         setBounds(new Rectangle(00600350));
  34.         getContentPane().setLayout(null);
  35.        
  36.         JScrollPane scrollPane = new JScrollPane();
  37.         scrollPane.setBounds(1249560189);
  38.         getContentPane().add(scrollPane);
  39.        
  40.         BoardDAO dao = new BoardDAOImpl();
  41.         List<BoardVO> list = vos;
  42.        
  43.         String[] colNames = new String[] {"글번호""제목""내용...""작성자""작성일"};
  44.         Object[][] rowDatas = new Object[list.size()][colNames.length];
  45.        
  46.         for (int i = 0; i < list.size(); i++) {
  47.             rowDatas[i] = new Object[] {
  48.                     list.get(i).getNum(),
  49.                     list.get(i).getTitle(),
  50.                     list.get(i).getContent(),
  51.                     list.get(i).getName(),
  52.                     list.get(i).getRegDate()
  53.             };
  54.         }
  55.         table = new JTable();
  56.         table.setModel(new DefaultTableModel(rowDatas,colNames) {
  57.             boolean[] columnEditables = new boolean[] {
  58.                 falsefalsefalsetruefalse
  59.             };
  60.             public boolean isCellEditable(int row, int column) {
  61.                 return columnEditables[column];
  62.             }
  63.         });
  64.         table.getColumnModel().getColumn(0).setResizable(false);
  65.         table.getColumnModel().getColumn(0).setPreferredWidth(45);
  66.         table.getColumnModel().getColumn(1).setResizable(false);
  67.         table.getColumnModel().getColumn(1).setPreferredWidth(200);
  68.         table.getColumnModel().getColumn(2).setResizable(false);
  69.         table.getColumnModel().getColumn(2).setPreferredWidth(164);
  70.         table.getColumnModel().getColumn(4).setResizable(false);
  71.         table.getColumnModel().getColumn(4).setPreferredWidth(140);
  72.        
  73.         table.addMouseListener(new MouseAdapter() {
  74.             @Override
  75.             public void mouseClicked(MouseEvent e) {
  76.                 // TODO Auto-generated method stub
  77.                 int rowNum = table.getSelectedRow();
  78.                 BoardVO vos = new BoardVO();
  79.                 vos = list.get(rowNum);
  80.                
  81.                 new BoardUpdate(vos);
  82.             }
  83.         });
  84.         scrollPane.setViewportView(table);
  85.        
  86.         JLabel lblNewLabel = new JLabel("검색조건");
  87.         lblNewLabel.setBounds(186205615);
  88.         getContentPane().add(lblNewLabel);
  89.        
  90.         JComboBox comboBox = new JComboBox();
  91.         comboBox.setModel(new DefaultComboBoxModel(new String[] {"title""content""writer"}));
  92.         comboBox.setBounds(244177421);
  93.         getContentPane().add(comboBox);
  94.        
  95.         searchString = new JTextField();
  96.         searchString.setBounds(3301713321);
  97.         getContentPane().add(searchString);
  98.         searchString.setColumns(10);
  99.        
  100.         JButton btnSearch = new JButton("search..");
  101.         btnSearch.setIcon(new ImageIcon(BoardList2.class.getResource("/images/icon_search_01.png")));
  102.         btnSearch.setBounds(4671610523);
  103.         btnSearch.addActionListener(new ActionListener() {
  104.            
  105.             @Override
  106.             public void actionPerformed(ActionEvent e) {
  107.                 BoardDAO dao = new BoardDAOImpl();
  108.                 dao.search(String.valueOf(comboBox.getSelectedItem()), searchString.getText());
  109.                
  110.                 setVisible(false);
  111.                
  112.             }
  113.         });
  114.         getContentPane().add(btnSearch);
  115.        
  116.         JLabel lblDesignByDanielkim = new JLabel("design by daniel,kim");
  117.         lblDesignByDanielkim.setIcon(new ImageIcon(BoardList2.class.getResource("/images/icon_title_01.png")));
  118.         lblDesignByDanielkim.setForeground(Color.GRAY);
  119.         lblDesignByDanielkim.setBounds(43428613815);
  120.         getContentPane().add(lblDesignByDanielkim);
  121.        
  122.         JButton btnWrite = new JButton("글작성");
  123.         btnWrite.setIcon(new ImageIcon(BoardList2.class.getResource("/images/icon_edit_01.png")));
  124.         btnWrite.setBounds(4752489723);
  125.         btnWrite.addActionListener(new ActionListener() {
  126.            
  127.             @Override
  128.             public void actionPerformed(ActionEvent e) {
  129.                 new BoardInsert();
  130.                
  131.             }
  132.         });
  133.        
  134.         getContentPane().add(btnWrite);
  135.        
  136.         setVisible(true);
  137.     }
  138. }


BoardUpdate.java

  1. package test.com.board.view;
  2.  
  3. import java.awt.Rectangle;
  4. import java.awt.Toolkit;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. import javax.swing.ImageIcon;
  9. import javax.swing.JButton;
  10. import javax.swing.JFrame;
  11. import javax.swing.JLabel;
  12. import javax.swing.JTextArea;
  13. import javax.swing.JTextField;
  14.  
  15. import test.com.board.control.BoardDAO;
  16. import test.com.board.control.BoardVO;
  17. import test.com.board.model.BoardDAOImpl;
  18.  
  19. public class BoardUpdate extends JFrame {
  20.  
  21.     private JTextField title;
  22.     private JTextField writer;
  23.  
  24.     public BoardUpdate(BoardVO vo) {
  25.  
  26.         final int num = vo.getNum();
  27.  
  28.         setBounds(new Rectangle(6000450280));
  29.         setTitle("게시글 수정");
  30.         setIconImage(Toolkit.getDefaultToolkit().getImage(BoardInsert.class.getResource("/images/icon_world_01.png")));
  31.         getContentPane().setLayout(null);
  32.  
  33.         JLabel lblNewLabel = new JLabel("글제목");
  34.         lblNewLabel.setBounds(12255715);
  35.         getContentPane().add(lblNewLabel);
  36.  
  37.         title = new JTextField(vo.getTitle());
  38.         title.setBounds(812234021);
  39.         getContentPane().add(title);
  40.         title.setColumns(10);
  41.  
  42.         JLabel lblNewLabel_1 = new JLabel("글내용");
  43.         lblNewLabel_1.setBounds(12595715);
  44.         getContentPane().add(lblNewLabel_1);
  45.  
  46.         JTextArea textArea = new JTextArea(vo.getContent());
  47.         textArea.setLineWrap(true);
  48.         textArea.setRows(5);
  49.         textArea.setBounds(815334069);
  50.         getContentPane().add(textArea);
  51.  
  52.         JLabel lblNewLabel_2 = new JLabel("작성자");
  53.         lblNewLabel_2.setBounds(121405715);
  54.         getContentPane().add(lblNewLabel_2);
  55.  
  56.         writer = new JTextField(vo.getName());
  57.         writer.setBounds(8113711621);
  58.         getContentPane().add(writer);
  59.         writer.setColumns(10);
  60.  
  61.         JButton btnWrite = new JButton("글수정");
  62.         btnWrite.setIcon(new ImageIcon(BoardUpdate.class.getResource("/images/icon_repeat.png")));
  63.         btnWrite.setBounds(811809723);
  64.         btnWrite.addActionListener(new ActionListener() {
  65.  
  66.             @Override
  67.             public void actionPerformed(ActionEvent e) {
  68.                 BoardDAO dao = new BoardDAOImpl();
  69.                 BoardVO vo = new BoardVO();
  70.  
  71.                 String titles = title.getText();
  72.                 String txtarea = textArea.getText();
  73.                 String name = writer.getText();
  74.                 vo.setNum(num);
  75.                 vo.setTitle(title.getText());
  76.                 vo.setContent(textArea.getText());
  77.                 vo.setName(writer.getText());
  78.  
  79.                 dao.update(vo);
  80.  
  81.                 setVisible(false);
  82.  
  83.             }
  84.         });
  85.         getContentPane().add(btnWrite);
  86.  
  87.         JButton btnDel = new JButton("글삭제");
  88.         btnDel.setIcon(new ImageIcon(BoardUpdate.class.getResource("/images/icon_garbage_01.gif")));
  89.         btnDel.setBounds(1901809723);
  90.         btnDel.addActionListener(new ActionListener() {
  91.  
  92.             @Override
  93.             public void actionPerformed(ActionEvent e) {
  94.                 BoardDAO dao = new BoardDAOImpl();
  95.                 BoardVO vo = new BoardVO();
  96.  
  97.                 vo.setNum(num);
  98.  
  99.                 dao.delete(vo);
  100.  
  101.                 setVisible(false);
  102.             }
  103.         });
  104.         getContentPane().add(btnDel);
  105.  
  106.         JButton btnClose = new JButton("닫기");
  107.         btnClose.setIcon(new ImageIcon(BoardInsert.class.getResource("/images/icon_stop_01.png")));
  108.         btnClose.setBounds(2991809723);
  109.         btnClose.addActionListener(new ActionListener() {
  110.  
  111.             @Override
  112.             public void actionPerformed(ActionEvent e) {
  113.  
  114.                 setVisible(false);
  115.  
  116.             }
  117.         });
  118.         getContentPane().add(btnClose);
  119.  
  120.         setVisible(true);
  121.  
  122.     }
  123. }



BoardMain.java

  1. package test.com.board.view;
  2.  
  3. public class BoardMain {
  4.  
  5.     public static void main(String[] args) {
  6.        
  7.         new BoardList();
  8.  
  9.     }
  10.  
  11. }




Project UML








Project Result Screen

1. 게시글 리스트 GUI



2. 게시글 등록 GUI




3. 게시글 수정 GUI







728x90

'JAVA > 26. JDBC' 카테고리의 다른 글

java 코드 오라클 저장 프로시저 호출  (0) 2015.12.09
프로시져 호출하여 리스트 출력  (0) 2015.12.09