MYSQL JSP 연동 &리스트 뽑아오기
MYSQL 홈페이지에서 mysql-connector-java-5.1.40 다운받아 압축을 푼뒤 lib 파일에 넣어준다.
1. 뷰
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="book.*"%> <%@page import="java.util.ArrayList"%> <!DOCTYPE > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h2> 도서목록</h2> <table border="1"> <tr> <th>번호</th> <th>도서명</th> <th>저자</th> <th>가격</th> <th>수량</th> </tr> <% BookDAO dao=new BookDAO(); //dao.dbConn(); db 연결 확인 작업 ArrayList<bookDTO>list=dao.bookList(); for(bookDTO dto:list){ %> <tr> <td><%=dto.getId() %></td> <td><%=dto.getTitle() %></td> <td><%=dto.getAuthor() %></td> <td><%=dto.getPrice() %></td> <td><%=dto.getQty() %></td> </tr> <% } //for 문의 끝 %> </table> </body> </html> | cs |
2. bookDTO 데이터 담는 그릇
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | package book; // dto: data transfer object(데이터 전달 객체) //vo , to 라고도 함 //자료 저장 클래스 public class bookDTO { private int id; private String title; private String author; private int price; private int qty; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public int getQty() { return qty; } public void setQty(int qty) { this.qty = qty; } // 기본생성자 public bookDTO() { // TODO Auto-generated constructor stub } // 매개변수가 있는 생성자 public bookDTO(String title, String author, int price, int qty) { super(); this.title = title; this.author = author; this.price = price; this.qty = qty; } @Override public String toString() { return "bookDTO [id=" + id + ", title=" + title + ", author=" + author + ", price=" + price + ", qty=" + qty + "]"; } } | cs |
3. BOOKDAO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | package book; // jdbc import import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; public class BookDAO { // db접속 public Connection dbConn() { Connection conn = null; // db접속 객체 try { // mysql jdbc driver 로딩 Class.forName("com.mysql.jdbc.Driver"); // db연결 문자열 but 이방법은 보안에 취약하다. .. String url = "jdbc:mysql://localhost:3306/java"; String id = "java"; // mysql 접속아이디 String pwd = "java1234"; // mysql 접속 비번 // db 접속 conn = DriverManager.getConnection(url, id, pwd); System.out.println("db접속 성공"); } catch (Exception e) { // db관련작업은 반드시 익셉션 처리 System.out.println("db접속 실패"); e.printStackTrace(); } return conn; } // 북리스트 public ArrayList<bookDTO> bookList() { ArrayList<bookDTO> list = new ArrayList<bookDTO>(); Connection conn = null; // DB접속 객체 PreparedStatement pstmt = null; // SQL실행객체 ResultSet rs = null; // 결과셋 처리 객체 try { conn = dbConn(); // db연결 키 String sql = "select * from book_table"; pstmt = conn.prepareStatement(sql); // sql을 실행시키는 객체 만들어짐 rs = pstmt.executeQuery(); // 실행 후 결과 값이 rs에 넘어옴 while (rs.next()) { //결과셋.next(); 다음 레코드가 있으면 true bookDTO dto = new bookDTO(); dto.setId(rs.getInt("id")); dto.setTitle(rs.getString("title")); dto.setAuthor(rs.getString("author")); dto.setPrice(rs.getInt("price")); dto.setQty(rs.getInt("qty")); //ArrayList에 추가 list.add(dto); } } catch (Exception e) { e.printStackTrace(); } finally { //오픈한 역순으로 닫기작업 실행 //resultset= > statement=> connection try{ if(rs!=null){rs.close();} }catch(Exception e2){ e2.printStackTrace(); } try{ if(pstmt!=null){pstmt.close();} }catch(Exception e2){ e2.printStackTrace(); } try{ if(conn!=null){conn.close();} }catch(Exception e2){ e2.printStackTrace(); } } return list; } } | cs |