DB에서 책 리스트를 조회해서 뿌려주는 부분
흐름
1. 자바스크립트에서 ajax를 실행
2. 받아오는 데이터 형식 json
3. DB에서 조회해온 데이터를 Controller에서 다시 json형식으로 만들어주어야함.
4. 받아온 데이터를 key값으로 접근해서 사용
function booklist()
{
var url = "bookselect.text";
var form_data = {
/**/
}
$.ajax({
type : "post",
url : url,
data : form_data,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
dataType : "json",
success : function(getData) {
console.log(getData);
var string ="";
for (var i = 0; i < getData.list.length; i++) {
var comments =
"<div class='booklist'>"
+ "<div class='bookimg'>"
+ "<img src='./images/book1.jpg'>"
+ "</div>"
+ "<div class='content_wrap'>"
+ "<a href='#'>"
+ "<p class='booktitle'>" + getData.list[i].book_title + "</p>"
+ "<p class='bookcontent'>" + getData.list[i].book_price +"<br>" + getData.list[i].book_page + "<br>" + getData.list[i].book_publisher + "<br>"+ getData.list[i].book_uploaddate
+ "</p>"
+ "</a>"
+ "</div>";
string = string + comments;
}
$(".wrapboard").html(string);
},
error : function(request,status,error){
alert("code = "+ request.status + " message = " + request.responseText + " error = " + error);
console.log(error);
}
});
DAO
가장 먼저 DAO에서 처리 결과를 rs.next()로 커서를 옴겨가며 ArrayList 에 담아준다.
그러면 list.add()를 통해 담기고 list.get(i)를 통해 가져올 수 있다.
@Override
public ArrayList<TextbookBean> selectBookList(TextbookBean tBean) {
ArrayList<TextbookBean> list = new ArrayList<TextbookBean>();
try {
con = getConnection();
sql = "select * from book";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
System.out.println("??????????????????????");
while(rs.next())
{
System.out.println("??????????????????????");
TextbookBean textBean = new TextbookBean();
textBean.setBook_title(rs.getString(1));
textBean.setBook_content(rs.getString(2));
textBean.setBook_publisher(rs.getString(3));
textBean.setBook_price(rs.getInt(4));
textBean.setBook_no(rs.getInt(5));
textBean.setBook_page(rs.getInt(6));
textBean.setBook_filename(rs.getString(7));
textBean.setBook_uploaddate(rs.getDate(8));
System.out.println(rs.getString(1));
list.add(textBean);
}
}catch(Exception e) {
}finally {
closeConnection();
}
for(int i = 0 ; i< list.size(); i++)
{
System.out.println("dao 책이름 : " + list.get(i).getBook_title());
}
return list;
}
}
Controller.java
Controller단에서는 Dao에서 돌려주는 return 값 즉 , list.add()로 담긴 데이터를 꺼내와야한다.
꺼내오는 방법은 list.get(i)가 title/content/publisher/price/no/page/filename을 담고 있기 때문에 .을 찍으면
각각의 해당 객체의 데이터에 접근이 가능하다.
하나의 책 정보만 필요하다면 바로 JSONObject를 통해서 jsonObject 객체.put() 메서드를 사용해서 하나하나씩 담아주면 ajax단에서 getData.book_title 이런식으로 접근할 수 있는 데이터가 만들어진다.
하지만 여러개의 객체를 담아야하기 때문에 JSONArray를 사용해서 담아줘야한다.
JSONArray arr[0] index에 jsondata.put() title/content/publisher/price/no/page/filename
JSONArray arr[1] index에 jsondata.put() title/content/publisher/price/no/page/filename
JSONArray arr[2] index에 jsondata.put() title/content/publisher/price/no/page/filename ...
JSONArray 객체에 JSONObject 객체를 담는 것.
JSONObject를 생성하는것은 객체.put으로 다담으면 JSONArray객체 arr[0] ... arr[n] 에 하나하나씩 arr.add()로 담아준다
tBean = getTextbookBeanProperty(request, response);
ArrayList<TextbookBean> list = tServ.selectBookList(tBean);
//jsondata로 파싱
JSONObject jsondata = new JSONObject();
Date date = null;
//jsonString
String jsonString = null;
JSONArray arr = new JSONArray();
//ArrayList에서 값을 꺼내옴
for(int i=0; i<list.size(); i++) {
System.out.println("-----------------------");
jsondata = new JSONObject();
jsondata.put("book_title", list.get(i).getBook_title());
jsondata.put("book_content", list.get(i).getBook_content());
jsondata.put("book_publisher", list.get(i).getBook_publisher());
jsondata.put("book_price", list.get(i).getBook_price());
jsondata.put("book_no", list.get(i).getBook_no());
jsondata.put("book_page", list.get(i).getBook_page());
jsondata.put("book_filename", list.get(i).getBook_filename());
date = list.get(i).getBook_uploaddate();
jsondata.put("book_uploaddate", date.toString());
arr.add(jsondata);
}
JSONObject booklist = new JSONObject();
booklist.put("list", arr);
jsonString = booklist.toJSONString();
System.out.println(jsonString);
PrintWriter out = response.getWriter();
out.print(jsonString);
'JSP' 카테고리의 다른 글
[JSP] [naver검색 API사용해보기] [java] jsonString을 jsonObject로 파싱 (0) | 2020.01.19 |
---|---|
[JSP] MySQL 설치 (0) | 2019.12.01 |
[JSP] 예시 ] SQL_QUERY , 내장객체 세션, 절대 경로 (0) | 2019.11.19 |
[JSP] 액션태그 (0) | 2019.11.05 |
[JSP] XML/JSP 페이지에서 에러 페이지 연결 시키기 (0) | 2019.11.05 |