저번 시간엔 MVC로 디비 연동해서 웹 출력하기를 해봤는데 이번 시간엔 MVC보다 시간도 적게 걸리고 쉬운 JSP로 웹 출력을 해보겠다. (쿼리와 DB 연동 등등 전 게시물과 같은 걸로 할 것이니 참고 바람)
.
.
.
<link href="index.css" rel="stylesheet">
<title>Insert title here</title>
</head>
<body>
<header>
<h1>JSP로 웹 출력하기 </h1>
</header>
<nav>
<a href="index.jsp">홈으로</a>
<a href="list.jsp">조회</a>
<a href="reg.jsp">등록</a>
</nav>
<section>
<ol>
<li>JSP로 웹</li>
<li>출력하기~</li>
</ol>
</section>
<footer>
<h2>JSP good - Min A</h2>
</footer>
</body>
</html>
조회 jsp 파일을 작성할 땐 위에 include file로 db 연결해주고,
section 부분만 수정해주면 된다.
.
.
.
<%@ page import="java.sql.*" %>
<%
String driver = "자신의_oracle.jdbc.driver.OracleDriver";
String url = "자신의_jdbc:oracle:thin:@localhost:1521:xe";
String user = "자신의_system";
String password = "자신의_1234";
Connection con;
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
if(con != null) System.out.println("db ok");
%>
import="java.sql.*" 로 클래스들을 모두 사용할 수 있게 해주고,
자신의 driver로 데이터베이스 연결해준다.
Class.forName(driver)로 지정된 드라이버 클래스를 동적으로 로드해주고,
getConnection() 메서드는 Connection 객체를 반환해준다.
.
.
.
<section>
<table>
<%
String sql=" select s.saleno , s.pcode , to_char(s.saledate , 'yyyy-mm-dd') , s.scode , p.name ,s.amount, p.cost* s.amount ";
sql+=" from tbl_salelist_01 s ";
sql+=" join tbl_product_01 p ";
sql +=" on s.pcode = p.pcode " ;
PreparedStatement pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while(rs.next()){
%>
<tr>
<td><%= rs.getString(1) %></td>
<td><%= rs.getString(2) %></td>
<td><%= rs.getString(3) %></td>
<td><%= rs.getString(4) %></td>
<td><%= rs.getString(5) %></td>
<td><%= rs.getString(6) %></td>
<td><%= rs.getString(7) %></td>
</tr>
<%} %>
</table>
</section>
맨위에 include file로 db 연결해주고 section 부분만 수정해준다.
전 게시물에서 짰던 쿼리 넣어주고, while문 사용하여 rs에서 한 행씩 데이터 추출한다.
.
.
.
jsp로 조회하는 법은 이게 끝이다.
이처럼 mvc보다 훨씬 시간도 적게 걸리고 간편하다.
물론 등록이나 수정은 Action 파일도 필요하기 때문에 2개씩 만들어야하지만 그래도 mvc보다는 적다.
장단점이 있으니 상황에 맞게 골라서 사용하면 될 것 같다.