JDBC에서 데이터베이스 연결 하는 것을 공부한 적이 있었다.
데이터베이스와 JDBC 연결하기 참고 :
2023.03.14 - [강의 정리/JDBC] - 오라클 DB와 JDBC 연결하기
오라클 DB와 JDBC 연결하기
JDBC JDBC란 자바에서 데이터베이스를 연결하고 그 안에 있는 데이터를 가져오기 위해 사용하는 자바 API를 말한다. DB에는 Oracle뿐만 아니라 MY SQL 등 다양한 종류의 DB들이 있을텐데 이 DB에 접근하
myblog1128.tistory.com
2023.05.28 - [국비 지원/JDBC] - [JDBC] JDBC와 데이터베이스 연결하기
[JDBC] JDBC와 데이터베이스 연결하기
JDBC(Java DataBase Connectivity) 자바에서 데이터베이스와 연결하여 데이터를 다룰 수 있게 해주는 것을 말한다. 그래서 우리는 자바에서 데이터베이스의 데이터를 다루고 싶다면 JDBC 드라이버가 필요
myblog1128.tistory.com
데이터베이스 연결하는 코드를 아래와 같이 상단에 <% %> 태그 안에 넣어준다.
<%
String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:xe";
String sql = "SELECT * FROM NOTICE";
String USER = "system";
String PASSWORD = "oracle";
Class.forName(JDBC_DRIVER);
Connection conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);
PreparedStatement st = conn.prepareStatement(sql);
ResultSet rs = st.executeQuery();
%>
Connection, DriverManager, Statement, Resultset을 사용하려면 import를 해야 한다.
JSP 파일에서 import하는 방법은 아래와 같다.
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
그리고 이 객체들을 사용했으면 닫아주도록 해야 한다.
아래의 코드를 제일 하단에 넣어주도록 해야한다.
<%
rs.close();
st.close();
conn.close();
%>
그리고 아래와 같이 데이터베이스에 있는 데이터들을 읽어오도록 해야 한다.
<% while(rs.next()){ %>
<tr>
<td><%= rs.getInt("ID") %></td>
<td class="title indent text-align-left"><a href="detail.html">
<%= rs.getString("TITLE") %></a>
</td>
<td><%=rs.getString("WRITER_ID") %></td>
<td>
<%=rs.getDate("REGDATE") %>
</td>
<td><%=rs.getInt("HIT") %></td>
</tr>
<% } %>
이렇게 해서 실행을 시키면 아래의 사진과 같이 500 에러가 발생한다.
ClassNotFoundException이 일어나는데 이는 오라클 드라이버가 없어서 발생하는 에러이다.
이를 해결하려면 아래의 사이트에서 ojdbc8.jar 파일을
/src/main/webapp/WEB-INF/lib 폴더 아래에 넣어주면 된다.
이러면 에러가 발생하지 않고 제대로 동작되는 것을 확인할 수 있다.
이제 이 목록에서 글을 선택하면 그 글의 내용을 볼 수 있어야 한다. 아래의 코드를 간단하게 살펴보자.
이 JSP 파일도 데이터베이스를 연결해주는 코드가 있어야 하고 이를 import해주도록 해야한다.
그리고 글을 선택했을 때 그 글의 내용을 보여주려면 아래와 같이 파라미터로 ID값을 넘겨줘야 한다.
이 파라미터는 문자열로 취급되기 때문에 int형으로 변환을 해줘야하며
?를 사용해 매개변수화된 SQL을 통해 실행하도록 한다.
이 내용들은 JDBC할 때 했던 내용이므로 자세한 내용은 위의 글을 참고하도록 하자.
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
int id = Integer.parseInt(request.getParameter("id"));
String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:xe";
String sql = "SELECT * FROM NOTICE WHERE ID=?";
String USER = "system";
String PASSWORD = "oracle";
Class.forName(JDBC_DRIVER);
Connection conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);
PreparedStatement st = conn.prepareStatement(sql);
st.setInt(1,id);
ResultSet rs = st.executeQuery();
rs.next();
%>
'강의 정리하기 > JSP와 Servlet' 카테고리의 다른 글
Model 데이터 구조화하고 View 페이지 은닉하기 (0) | 2023.07.18 |
---|---|
스파게티 코드를 Model1과 Model2로 바꾸기 (0) | 2023.07.16 |
JSP의 페이지 지시자를 이용한 인코딩 (0) | 2023.07.15 |
EL 연산자와 EL의 데이터 저장소 (0) | 2023.07.11 |
JSP MVC Model1과 Model2 (0) | 2023.07.09 |