Employee.java
package web.jdbc.test;

public class Employee {

	private int empno;
	private String ename;
	private int deptno;
	private String hiredate;
	private int sal;
	private int mgr;
	
	public int getEmpno() {
		return empno;
	}
	public void setEmpno(int empno) {
		this.empno = empno;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	public int getDeptno() {
		return deptno;
	}
	public void setDeptno(int deptno) {
		this.deptno = deptno;
	}
	public String getHiredate() {
		return hiredate;
	}
	public void setHiredate(String hiredate) {
		this.hiredate = hiredate;
	}
	public int getSal() {
		return sal;
	}
	public void setSal(int sal) {
		this.sal = sal;
	}
	public int getMgr() {
		return mgr;
	}
	public void setMgr(int mgr) {
		this.mgr = mgr;
	}
	
	
}

EmpDAO.java
package web.jdbc.test;

import java.sql.*;
import java.util.*;

public class EmpDAO {
	// 데이터베이스 연결관련정보를 문자열로 선언
	private String jdbc_driver = "oracle.jdbc.OracleDriver";
	private String db_url = "jdbc:oracle:thin:@211.183.3.5:1521:ORCL";

	private Connection getConn() throws Exception{
		// JDBC 드라이버 로드하여 DriverManager에 등록함
		Class.forName(jdbc_driver);

		// 로드된 드라이버를 이용하여 DB와 연결하고 Connection 인스턴스 구함
		Connection conn = DriverManager.getConnection(db_url,"user05","user05");
		return conn;
	}

	private void closeAll(ResultSet rs, Statement stmt, Connection conn){
		try {
			if(rs!=null)rs.close();
			if(stmt!=null)stmt.close();
			if(conn!=null)conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public ArrayList<Employee> getAllEmps(){
		String sql ="select * from employee";
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			conn = getConn();
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			Employee emp = null;
			ArrayList<Employee> list = new ArrayList<Employee>();
			while(rs.next()){
				emp = new Employee();
				emp.setEmpno(rs.getInt("EMPNO"));
				emp.setEname(rs.getString("ENAME"));
				emp.setDeptno(rs.getInt("DEPTNO"));
				list.add(emp);
			}
			return list;
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			closeAll(rs, stmt, conn);
		}
		return null;
	}

	// 사번을 전달받고 데이터베이스를 검색하여 해당 사원의 상세정보를 리턴한다
	// @param empno 검색할 사원의 사번
	// @return Employee 사원의 상세정보를 저장하고 있는 DTO
	public Employee getEmp(int empno){
		String sql = "select * from employee where empno="+empno;
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			conn = getConn();
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			if (rs.next()){
				Employee emp = new Employee();
				emp.setEmpno(rs.getInt("EMPNO"));
				emp.setEname(rs.getString("ENAME"));
				emp.setDeptno(rs.getInt("DEPTNO"));
				emp.setHiredate(rs.getString("HIREDATE"));
				emp.setSal(rs.getInt("SAL"));
				emp.setMgr(rs.getInt("MGR"));
				return emp;
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			closeAll(rs, stmt, conn);
		}
		return null;
	}
}

empDesc.jsp
<%@page import="web.jdbc.test.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:useBean id="dao" class="web.jdbc.test.EmpDAO"/>
<% 
	int empno = Integer.valueOf(request.getParameter("empno")); 
	Employee emp = dao.getEmp(empno);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
	table {border: 1px solid black;}
	td {text-align: center;}
	th {border: 1px solid black; background-color: green; }
</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>사원의 상세정보 보기</title>
</head>
<body>
<table>
<tr>
	<td colspan="4"><h1>사번이 <%=empno %>인 사원의 상세정보</h1></td>
</tr>
<tr>
	<td>사번</td><td><%=empno %></td>
	<td>이름</td><td><%=emp.getEname() %></td>
</tr>
<tr>
	<td>부서</td><td><%=emp.getDeptno()%></td>
	<td>입사일</td><td><%=emp.getHiredate()%></td>
</tr>
<tr>
	<td>급여</td><td><%=emp.getSal()%></td>
	<td>매니져</td><td><%=emp.getMgr()%></td>
</tr>
</table>
</body>
</html>
empList.jsp
<%@page import="web.jdbc.test.Employee"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:useBean id="dao" class="web.jdbc.test.EmpDAO"/>
<%
	ArrayList<Employee> list = dao.getAllEmps();
%>

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
	table {border: 1px solid black;}
	td {text-align: center;}
	th {border: 1px solid black; background-color: green; }
</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>오라클 접속 테스트</title>
</head>
<body>
<table rules="rows">
<tr>
	<th>Empno</th>
	<th>Ename</th>
	<th>Deptno</th>
</tr>
<%
	for(int i=0;i<list.size();i++){
		Employee emp = list.get(i);
		int empno = emp.getEmpno();
		%>
		<tr>
		<td><%=empno %></td> 
		<td><a href="empDesc.jsp?empno=<%=empno%>"><%=emp.getEname() %></a></td> 
		<td><%=emp.getDeptno() %></td>
		</tr>
	<%}
%>
</table>
</body>
</html>






http://dl.dropbox.com/u/92046264/303jsp/


JDBC Test in Oracle


Java 프로그램과 연결할 때 사용할 JDBC Driver는 설치된 Oracle 디렉토리에서 검색해보면 해당 오라클 버전의 JDBC Driver를 찾을 수가 있다. 만약 찾지 못하면 아래에서 다운로드할 수 있다.

ojdbc14.jar


package web.jdbc.test;
import java.sql.*;

public class OracleTest {
	public static void main(String[] args)  {
		// 데이터베이스 연결관련 변수 선언
		Connection conn = null;
		Statement stmt = null;

		// 데이터베이스 연결관련정보를 문자열로 선언
		String jdbc_driver = "oracle.jdbc.OracleDriver";
		String db_url = "jdbc:oracle:thin:@211.183.3.5:1521:ORCL";

		try{
			// JDBC 드라이버 로드하여 DriverManager에 등록함
			Class.forName(jdbc_driver);

			// 로드된 드라이버를 이용하여 DB와 연결하고 Connection 인스턴스 구함
			conn = DriverManager.getConnection(db_url,"user09","user09");

			// Connection 객체로 부터 SQL문 작성을 위한 Statement 준비
			stmt = conn.createStatement();

			ResultSet rs = stmt.executeQuery("select * from emp");
			while(rs.next()) {
				System.out.println(rs.getString(1)+" " +rs.getString(2)+" " +rs.getString(3)+" " +rs.getString(4)+" " +rs.getString(5));
			}
			rs.close();
			stmt.close();
			conn.close();
		}
		catch(Exception e) {
			System.out.println(e);
		}
		System.out.println("테스트 끝");
	}
}



오라클 디비랑 잘 연결 되어서 요렇게 출력된다~~







DAO - data access object

DTO - data transfer object

ORM - (Object-relational mapping)








oracleTest.jsp
<%@page import="web.jdbc.test.Employee"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<jsp:useBean id="dao" class="web.jdbc.test.EmpDAO"/>
<%
	ArrayList<Employee> list = dao.getAllEmps();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>오라클 접속 테스트</title>
</head>
<body>
<ol>
<%
	for(int i=0;i<list.size();i++){
		Employee emp = list.get(i);%>
		<li><%=emp.getEmpno() %> / <%=emp.getEname() %> / <%=emp.getDeptno() %>
	<%}
%>
</ol>
</body>
</html>
Employee.java
package web.jdbc.test;

public class Employee {
	
	private int empno; //사원번호
	private String ename;//사원이름
	private int deptno;//부서번호
	private String hiredate;//고용날짜
	private int sal;//봉급
	private int mgr;//매니져
	
	public int getEmpno() {
		return empno;
	}
	public void setEmpno(int empno) {
		this.empno = empno;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String eanme) {
		this.ename = eanme;
	}
	public int getDeptno() {
		return deptno;
	}
	public void setDeptno(int deptno) {
		this.deptno = deptno;
	}
	public String getHiredate() {
		return hiredate;
	}
	public void setHiredate(String hiredate) {
		this.hiredate = hiredate;
	}
	public int getSal() {
		return sal;
	}
	public void setSal(int sal) {
		this.sal = sal;
	}
	public int getMgr() {
		return mgr;
	}
	public void setMgr(int mgr) {
		this.mgr = mgr;
	}	
}

EmpDAO.java
package web.jdbc.test;

import java.sql.*;
import java.util.ArrayList;

public class EmpDAO {
	// 데이터베이스 연결관련 변수 선언
	private Connection conn = null;
	private Statement stmt = null;
	private ResultSet rs = null;

	// 데이터베이스 연결관련정보를 문자열로 선언
	String jdbc_driver = "oracle.jdbc.OracleDriver";//ojdbc14.jar에 있다.
	String db_url = "jdbc:oracle:thin:@211.183.3.5:1521:ORCL";

	private Connection getConn() throws Exception{

		// JDBC 드라이버 로드하여 DriverManager에 등록함
		Class.forName(jdbc_driver);

		// 로드된 드라이버를 이용하여 DB와 연결하고 Connection 인스턴스 구함
		Connection conn = DriverManager.getConnection(db_url,"user09","user09");
		return conn;
	}

	private void closeAll(ResultSet rs,Statement stmt,Connection conn){
		try{
			if(rs!=null)rs.close();
			if(stmt!=null)stmt.close();
			if(conn!=null)conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public ArrayList<Employee> getAllEmps(){
		String sql="select * from emp";
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs =null;
		try {
			conn = getConn();
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			Employee emp = null;
			ArrayList<Employee> list = new ArrayList<Employee>();
			while(rs.next()){
				emp = new Employee();
				emp.setEmpno(rs.getInt("EMPNO"));
				emp.setEname(rs.getString("ENAME"));
				emp.setDeptno(rs.getInt("DEPTNO"));
				list.add(emp);
			}
			return list;
		} catch (Exception e) {
			e.printStackTrace();
		}finally{//오류와 관련없이 항상 실행
			closeAll(rs,stmt,conn);
		}
		return null;
	}
}



'JSP > 2012.04강의(MySQL)' 카테고리의 다른 글

복습10  (0) 2012.07.17
복습8  (0) 2012.07.13
복습7 회원 정보 저장 폼  (0) 2012.07.12
복습6 Cookie,Session을 이용한 login 처리,자바빈(JavaBeans)  (0) 2012.07.11
복습5 페이지 모듈화,error page,Cookie  (0) 2012.07.10

표현 언어


Expression Language

JSP에서 사용가능한 새로운 스크립트 언어

EL의 주요 기능

JSP의 네 가지 기본 객체가 제공하는 영역의 속성 사용

Collection 객체, 배열에 대한 접근 방법 제공

수치 연산, 관계 연산, 논리 연산자 제공

자바 클래스 메서드 호출 기능 제공

표현언어만의 기본 객체 제공

간단한 구문 때문에 표현식 대신 사용

기본 문법

${expr}, #{expr}

사용예

<jsp:include page="/module/${skin.id}/header.jsp" />

<b>${sessionScope.member.id}</b>님 환영합니다.

${expr}은 표현식이 실행되는 시점에 바로 값 계산

#{expr}은 값이 실제로 필요한 시점에 값 계산

JSP 템플릿 텍스트에서는 사용 불가

스크립트 요소(스크립트릿, 표현식, 선언부)를 제외한 나머지 부분에서 사용




${expr}#{expr}의 동작 방식 예

<% 
    Member m = new Member();
    m.setName("이름1");
%>
<c:set var="m" value="<%= m %>" /><%--선언시의 값을 가짐--%> 

<%-- 이 시점에는 값 생성하지 않음 --%>
<c:set var="name" value="#{m.name}" /><%--현재 값을 가지지 않음--%>

<% m.setName("이름2"); %>

${name} <%-- 사용될 때 값 계산, "이름2" 출력 --%>

<% m.setName("이름3"); %>

${name} <%-- 사용될 때 값 계산, "이름3" 출력 --%>




EL에서 기본 객체





예제
EL은 영역 개체에 있어야 인식한다.
package test.bean;

public class Member {
	
	private String name;
	private String id;
	private String pwd;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	
	
}

<%@ page import="test.bean.Member" %>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
	Member m = new Member();
	m.setId("myID");
	m.setPwd("myPWD");
	m.setName("김연아");
	pageContext.setAttribute("m", m);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title></title>
</head>
<body>
회원 이름:[${m.name }]
</body>
</html>
<%@ page import="test.bean.Member" %>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<jsp:useBean id="m" class="test.bean.Member">
	<jsp:setProperty name="m" property="name" value="김연아"/>
	<jsp:setProperty name="m" property="id" value="myID"/>
	<jsp:setProperty name="m" property="pwd" value="myPWD"/>
</jsp:useBean>    
<%-- <%
	Member m = new Member();
	m.setId("myID");
	m.setPwd("myPWD");
	m.setName("김연아");
	pageContext.setAttribute("m", m);
%> --%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title></title>
</head>
<body>
회원 이름:[${m.name }]
<%=m.getName() %>
</body>
</html>




<%@ page import="test.bean.Member" %>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
	String[] name={"강호동","이수근","김종민"};
	pageContext.setAttribute("arr", name);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title></title>
</head>
<body>
<%=name[0] %><p/>
${arr[0]}
</body>
</html>


<%@ page import="test.bean.Member" %>
<%@ page import="java.util.*" %>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
	//String[] name={"강호동","이수근","김종민"};
	ArrayList<String> name= new ArrayList<String>();
	name.add("강호동");
	name.add("이수근");
	name.add("김종민");
	HashMap<String,String> map = new HashMap<String,String>();
	map.put("1", "강호동");
	map.put("2", "이수근");
	map.put("three", "김종민");
	pageContext.setAttribute("map", map);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title></title>
</head>
<body>
<%=map.get("1") %><p/>
${ map["1"]}<p/>
${ map.three }<!-- map에 영문이 아니면 오류가 난다. -->
</body>
</html>
<%@ page import="test.bean.Member" %>
<%@ page import="java.util.*" %>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
	//String[] name={"강호동","이수근","김종민"};
	ArrayList<String> name= new ArrayList<String>();
	name.add("강호동");
	name.add("이수근");
	name.add("김종민");
	HashMap<String,String> map = new HashMap<String,String>();
	map.put("강호동", "123-12321");
	map.put("이수근", "123-1232-2323");
	map.put("김종민", "234-2343-3242");
	pageContext.setAttribute("map", map);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title></title>
</head>
<body>
<%=map.get("김종민") %><p/>
${ map["김종민"]}<p/>
</body>
</html>



session 영역에서 값을 가져와서 nextPage에 출력

<%@ page import="test.bean.Member" %>
<%@ page import="java.util.*" %>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
	//String[] name={"강호동","이수근","김종민"};
	ArrayList<String> name= new ArrayList<String>();
	name.add("강호동");
	name.add("이수근");
	name.add("김종민");
	HashMap<String,String> map = new HashMap<String,String>();
	map.put("강호동", "123-12321");
	map.put("이수근", "123-1232-2323");
	map.put("김종민", "234-2343-3242");
	session.setAttribute("map", map);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title></title>
</head>
<body>
<a href="nextPage.jsp">다음페이지로 이동</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
&lt연락처&gt <p/>
강호동:${ map["강호동"]}<p/>
이수근:${ map["이수근"]}<p/>
김종민:${ map["김종민"]}<p/>
</body>
</html>


01


<%@ page import="test.bean.Member" %>
<%@ page import="java.util.*" %>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
	//String[] name={"강호동","이수근","김종민"};
	ArrayList<String> name= new ArrayList<String>();
	name.add("강호동");
	name.add("이수근");
	name.add("김종민");
	HashMap<String,String> map = new HashMap<String,String>();
	map.put("강호동", "123-12321");
	map.put("이수근", "123-1232-2323");
	map.put("김종민", "234-2343-3242");
	request.setAttribute("map", map);
%>
<jsp:forward page="nextPage.jsp"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title></title>
</head>
<body>
<a href="nextPage.jsp">다음페이지로 이동</a>
</body>
</html>




<%@ page import="test.bean.*, java.util.*" %>
<%@ page contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<jsp:useBean id="m" class="test.bean.Member" scope="request">
	<jsp:setProperty name="m" property="name" value="김종민"/>
	<jsp:setProperty name="m" property="id" value="myID"/>
	<jsp:setProperty name="m" property="pwd" value="myPWD"/>
</jsp:useBean>
<jsp:forward page="nextPage.jsp"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title></title>
</head>
<body>
<a href="nextPage.jsp">다음페이지로 이동</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<jsp:useBean id="m" class="test.bean.Member"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
${m.name}<p/>
${m.id}<p/>
${m.pwd}<p/>
</body>
</html>




<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>브라우저에서 전달된 파라미터</title>
</head>
<body>
아이디 : ${param.id }<br/>
암호 : ${param.pwd }<br/>
</body>
</html>



+ Recent posts