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);