요번 시간에는 도서관리게시판 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
'IT 관련,, > Java관련 언어들' 카테고리의 다른 글
[웹/JSP]jsp model1 간단한 도서관리게시판-4(update문) (0) | 2020.08.09 |
---|---|
[웹/JSP]jsp model1 간단한 도서관리게시판-3(insert문) (0) | 2020.08.09 |
[웹/JSP]jsp model1 간단한 도서관리게시판-1(bean, oracle설정) (0) | 2020.08.08 |
[웹/jQuery]제이쿼리 Json에 대해서 알아보자~!! (0) | 2020.08.02 |
[웹/jQuery]ajax에 대한 내용~!! (0) | 2020.08.02 |