
아래는 DB에 있는 banner 테이블.

알아보기 어렵지만 정리하는 차원에서 작성해본다.
나는 뭘 해도 꼭 순서대로 정리를 해야 직성이 풀린다.

그 외 index.jsp도 있음!
package controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
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 com.google.gson.Gson;
import service.BannerService;
import service.BannerServiceImpl;
@WebServlet("/banners")
public class BannerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
//banner 문자열 목록을 JSON으로 전달
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
BannerService banner = new BannerServiceImpl();
List<String> list = banner.selectAll();
Gson gson = new Gson();
String jsonArr = gson.toJson(list);
PrintWriter out = response.getWriter();
out.print(jsonArr);
}
}
(Dao는 Interface므로 생략)
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import common.DBManager;
public class BannerDaoImpl implements BannerDao {
private static BannerDaoImpl instance = new BannerDaoImpl();
public static BannerDao getInstance() {
return instance;
}
@Override
public List<String> select() {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<String> list = new ArrayList<>();
String sql = "select * from banner";
try {
con = DBManager.getConnection();
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()) {
list.add(rs.getString(1));
}
}catch (Exception e) {
e.printStackTrace();
}
finally {
DBManager.releaseConnection(con, ps, rs);
}
return list;
}
}
이것도 interface는 생략
package service;
import java.util.List;
import dao.BannerDao;
import dao.BannerDaoImpl;
public class BannerServiceImpl implements BannerService {
private static BannerDao banner = BannerDaoImpl.getInstance();
@Override
public List<String> selectAll() {
List<String> list = banner.select();
return list;
}
}
추가로 MEAT-INF 밑에 context.xml에 아래 코드를 추가해야한다.
<Resource name="jdbc/myoracle"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:xe"
username="본인 데이터 베이스 이름"
password="비밀번호"
maxTotal="20"
maxIdle="10"
maxWaitMillis="-1"/>


이렇게 2초마다 바뀌는 배너 만들 수 있다.
기억해보자..!