IT 관련,,/Java관련 언어들

[웹/JSP]jsp model1 간단한 도서관리게시판-2(dao, select문)

IT깡패's 2020. 8. 8. 19:25
728x90
반응형
SMALL

요번 시간에는 도서관리게시판 select에 대해서 이야기해보겠습니다~ㅎㅎ

select는 조회 또는 검색이라고 생각하시면 되시며, 기본적인 게시판에서는 당연히 필요한 부분입니다~

select할 때, dao부분에서 해야하는 작업에 대해서 알아보겠습니다.

 

1. jdbc 로딩,,,

  • Class.forName(“com.mysql.jdbc.Driver”)

2. Connection 객체를 생성

  • con = DriverManager.getConnection(url, user, pw)

3. Statement 객체를 생성

  • Staement - SQL문을 데이터베이스에 보내기위한 객체입니다.
  • stmt = con.createStatement()

4. SQL 문장을 실행

  • SQL 문장을 실행하고 결과를 ResultSet으로 리턴합니다.
  • stmt.excuteQuery(“SELECT * FROM book”);

5. ResultSet에 저장된 데이터 얻는 방법

  • ResultSet - SQL 질의에 의해 생성된 테이블을 저장하는 객체입니다.
  • rs = stmt.excuteQuery(SQL) - SQL 질의 결과를 ResultSet에 저장합니다.
  • rs.next() 를 이용해서 커서를 이동합니다.
  • 결과가 1 개인 경우
    if(rs.next()) { }

  • 결과가 2개 이상인 경우
     while(rs.next()) { }

  • rs.getString(“컬럼”) - ex) rs.getString(“id”)

  • rs.getInt(컬럼순번) - ex) rs.getInt(1)

 

- BookDao.java

package book;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import book.BookBean;

public class BookDao {
	String driver = "oracle.jdbc.driver.OracleDriver";
	String url = "jdbc:oracle:thin:@localhost:1521:xe";
	String dbid="scott";
	String dbpw="1234";
	Connection conn = null;

	public BookDao() {

		try{
			Class.forName(driver);
			conn = DriverManager.getConnection(url,dbid,dbpw);
			
		}catch(SQLException e){
			e.printStackTrace();

		}catch(ClassNotFoundException e){
			e.printStackTrace();

		}catch(Exception e){
			e.printStackTrace();
		}
	}


	public Vector<BookBean> getAllBook(){
		String sql = "select * from book order by bnum";
		PreparedStatement pstmt=null;
		ResultSet rs = null;
		Vector<BookBean> lists = new Vector<BookBean>();
		try{
			pstmt=conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			
			while(rs.next()){
				int bnum = rs.getInt("bnum");
				String title = rs.getString("title");
				String author = rs.getString("author");
				String publisher = rs.getString("publisher");
				String price = rs.getString("price");
				String bdate = rs.getString("bdate");
				String kind = rs.getString("kind");
				String bookstore = rs.getString("bookstore");
				String count = rs.getString("count"); 
				BookBean bb = new BookBean(bnum,title,author,publisher,price,bdate,kind,bookstore,count);
				lists.add(bb);
			}
			

		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try{
				if(rs!=null)
					rs.close();
				if(pstmt!=null)
					pstmt.close();
				if(conn!=null)
					conn.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
		return lists; 
	}

}

 

그리고 select.jsp부분이 있는데요~ㅎㅎㅎ

테이블을 조회해서 dao를 통해 select로 값을 불러오는 작업이라고 생각하시면 되고요~!!

script와 추가, 삭제 input창도 만들어놨는데요~

이것들은 일단 insert, delete할 때 같이 설명해드리겠습니다~!!

자 이제 select.jsp 소스코드를 살펴보도록 합시다!!

 

- select.jsp

<%@ page import="java.util.*,book.BookBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8"%>
select.jsp<br><br>

<jsp:useBean id="dao" class="book.BookDao" />
<%
	request.setCharacterEncoding("UTF-8");

	Vector<BookBean> bbs = dao.getAllBook();
%>

<style type="text/css">
table{
	border: 1px solid blue;
}
tr:first-child{
	background-color: yellow;
}
</style>
<script type="text/javascript">
	function insert() {
		
	}

	function selectDelete() {
		
	}

	function allDelete(obj) {
	
	}
</script>

<form name="userForm" action="deleteAll.jsp">
	<input type="button" value="삭제" onclick="selectDelete();">
	<input type="button" value="추가" onclick="insert();">
	<table border="1" align="center" width="90%">
		<tr align="center">
		<td><input type="checkbox" name="allcheck"	onclick="allDelete(this);"></td> 
			<td>번호</td>
			<td>제목</td>
			<td>저자</td>
			<td>출판사</td>
			<td>가격</td>
			<td>날짜</td>
			<td>배송비</td>
			<td>서점</td>
			<td>개수</td>
			<td>수정</td>
			<td>삭제</td>
		</tr>
		<%
			for (BookBean bb : bbs) {
		%>
		<tr align="center">
		<td><input name="rowcheck" type="checkbox" value="<%=bb.getBnum()%>"></td>
			<td><%=bb.getBnum()%></td>
			<td><%=bb.getTitle()%></td>
			<td><%=bb.getAuthor()%></td>
			<td><%=bb.getPublisher()%></td>
			<td><%=bb.getPrice()%></td>
			<td><%=bb.getKind()%></td>
			<td><%=bb.getBdate()%></td>
			<td><%=bb.getBookstore()%></td>
			<td><%=bb.getCount()%></td>			
			<td><a href="updateForm.jsp?bnum=<%=bb.getBnum()%>">수정</a></td>
			<td><a href="deleteProc.jsp?bnum=<%=bb.getBnum()%>">삭제</a></td>
		</tr>
		<%
			}
		%>
	</table>
	</form>

 

이쪽 jsp 코드를 대강 살펴보면요~

스크립트를 사용해서 dao사용했던 값들을 불러오고 insert는 추가라고 해서 인서트를 하게 만들꺼고요~

selectDelete()는 체크박스를 이용해서 데이터 값을 삭제할 때, 사용할라고 합니다~

그리고 check를 누르면 전체적으로 체크표시가 뜨게하던지 alert창이 뜨게끔 하는 부분을 맞는 것이

allDelete(this)라고 하는 함수인데요~ㅎㅎ

삭제할 때, 같이 설명하도록 하겠습니다~~

그리고 테이블 안에서 수정, 삭제도 되게끔 게시판을 짜보았습니다~

자 여기서 자바스크립트 뿐만 아니라 jquery 또는 bootstrap, 아코디언 등과 같이 사용하면 코드를 더 유연하게

짤 수 있게끔 도와줄 것입니다~

자 다음에는 insert, 수정, 삭제 내용들도 함께 올려보도록 하겠습니다~

 

- 참고링크


JDBC select문 실행 - https://allg.tistory.com/21

728x90
반응형
LIST