Open fluffy0301 opened 2 years ago
package jsp;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
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 javax.servlet.http.HttpSession;
@WebServlet("/RE10")
public class RE10 extends HttpServlet {
private static final long serialVersionUID = 1L;
private RE10DAO dao;
public RE10() {
super();
dao = new RE10DAO();
}//constructor
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. request.getParameter를 통해 사용자가 보낸 이름을 받는다.
String enm = request.getParameter("ename");
//2. DAO를 통해 사용자가 보낸 이름에 적합한 결과를 받는다.
ArrayList<EmpDTO> list = null;
try {
list = dao.nameLikeSearch(enm);
} catch( SQLException e ) {
e.printStackTrace();
//3. 에러가 있다면 사용자에게 에러를 공지한다.
//3-1. 세션에 에러 메세지를 입력.
request.getSession().setAttribute("err_msg"
, "DBMS 오류<br><br>잠시 후 다시 시도해 주세요.");
//3-2. 에러 페이지를 호출. -> 에러 페이지에서 에러 메세지를 출력한다.
response.sendRedirect("./jsp/10RE_err_page.jsp");
return;//프로그램 종료.
}
//4. 에러 없이 결과가 나왔다면 사용자에게 보낸다.
request.setAttribute("empNameLikeSearchResult", list);
RequestDispatcher disp
= request.getRequestDispatcher("./jsp/10RE_result.jsp");
disp.forward(request, response);
}//doGet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}//class
ExeSearch09DAO
package jsp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class ExeSearch09DAO {
public ExeSearch09DAO() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch( ClassNotFoundException e ) {
e.printStackTrace();
}
}//constructor
private final String URL = "jdbc:oracle:thin:@192.168.0.38:1521:xe";
private final String USER = "c##scott";
private final String PASSWORD = "tiger";
public ArrayList<EmpDTO> nameSearch(String name) throws SQLException {
ArrayList<EmpDTO> list = new ArrayList<EmpDTO>();
Connection con = DriverManager.getConnection(URL, USER, PASSWORD);
String sql = "select empno, ename, job, mgr, hiredate, sal, comm"
+ ", deptno from emp where ename like '%'||?||'%'";
PreparedStatement psmt = con.prepareStatement(sql);
psmt.setString(1, name);
ResultSet rs = psmt.executeQuery();
while(rs.next()) {
EmpDTO dto = new EmpDTO();
dto.setEmpno( rs.getString("empno") );
dto.setEname( rs.getString("ename") );
dto.setJob( rs.getString("job") );
dto.setMgr( rs.getString("mgr") );
dto.setHiredate( rs.getString("hiredate") );
dto.setSal( rs.getString("sal") );
dto.setComm( rs.getString("comm") );
dto.setDeptno( rs.getString("deptno") );
list.add(dto);
}//while
rs.close();
psmt.close();
con.close();
return list;
}//nameSearch
}//class
시스템 연동의 개념 시스템 연동이란 서버와 네트워크를 활용하는 자동화 체계 등에서 동일한 기능을 수행 하지 않는 단위 시스템 간에 접속을 통하여 업무(기능)를 수행하는 것을 의미한다.