JDBC 와 MYSQL 연동하기 4) 서블릿으로 출력하기

작성: 2021.04.16

수정: 2021.04.16

읽는시간: 00 분

Programming/JPA ⁄ Spring

반응형

이번에는 서블릿을 만들어서 MYSQL에서 읽어온 데이터를 브라우저에서 출력해보도록 하겠습니다.

shanepark.tistory.com/78

 

JDBC 와 MYSQL 연동하기 3) 커넥션 팩토리 패턴 적용하기

이제부터는 2) 번에서 했던 코드를 커넥션을 팩토리 패턴을 이용해 받아오도록 해보겠습니다. 코드는 거의 동일한데 커넥션을 받아온다는 것만 다릅니다. 제일 먼저 Resource 소스 폴더에 dbinfo.prop

shanepark.tistory.com

위의 3번 예제의 코드를 서블릿으로 만들었습니다. 어노테이션(@WebServlet)을 통한 맵핑은 Servlet 3.0 이후부터 가능합니다.

출력할 내용에 한글이 포함되어 있다면, charset을 설정해주지 않으면 한글이 깨져서 나옵니다.

그외 전체 코드는 위의 3번 예제와 거의 동일합니다.

 

package kr.or.ddit.test;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import kr.or.ddit.utils.db.ConnectionFactory;

@WebServlet("/test01")
public class Test04Servlet extends HttpServlet{
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setContentType("text/html; charset=utf-8");
		try(
				Connection conn = ConnectionFactory.getConnection();
			){
				String sql = "select * from alba";
				Statement statement = conn.createStatement();
				ResultSet result = statement.executeQuery(sql);
				
				while(result.next()) {
					String al_id = result.getString(1);
					String al_name = result.getString(2);
					int al_age = result.getInt(3);
					String al_zip = result.getString(4);
					String al_addr1 = result.getString("al_addr1");
					String al_addr2 = result.getString("al_addr2");
					String al_hp = result.getString("al_hp");
					String gr_code = result.getString("gr_code");
					String al_gen = result.getString("al_gen");
					String al_mail =result.getString("al_mail");
					String al_career = result.getString("al_career");
					String al_spec = result.getString("al_spec");
					String al_desc = result.getString("al_desc");
					String al_img = result.getString("al_img");
					PrintWriter out = resp.getWriter();
					String resultString = String.format("%s %s %d %s %s %s %s %s %s %s %s %s %s %s",al_id,al_name,al_age,al_zip,al_addr1,al_addr2,al_hp,gr_code,al_gen,al_mail,al_career,al_spec,al_desc,al_img);
					out.write(resultString);
					out.write("<br>");
				}
				
			} catch (SQLException e) {
				e.printStackTrace();
			}
	}
	
}

 

이제 브라우저에서 서블릿으로 맵핑한 주소를 들어가보면 아래와 같이 DB의 데이터들을 잘 받아와 출력하는 것을 확인 할 수 있습니다.

 

반응형