JAVA
JSP는 "JavaServer Pages"의 약자로, 서버 사이드에서 동적인
웹 페이지를 생성하기 위한 Java 기반의 웹 프로그래밍 기술
JSP에서 오라클 연동
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!doctype html>
<html>
<head>
<meta charset="UTF-8"> <title>DB 연동</title>
</head>
<body>
<h3> Data base 연동 샘플</h3>
<hr>
<% /* 자바 DB 연동 프로그램 */
try{
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection
("jdbc:oracle:thin:@//localhost:1521/xe","system","1234");
if(con != null)
{
out.println("Database Connect : [ " + " <b>success</b> ]<br>");
}else{
out.println("Database Connect : [ " + " <b>fail</b> ]<br>");
};
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select sysdate from dual");
while(rs.next()){
out.println("Today date : " + rs.getString(1) + "<hr>");
}
stmt.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
%>
<footer>
<address>
<center>
Web site Layout DB Connection Page.<br>
Home page : http://www.visiongongjang.com <br>
mobile : 010-2222-3333 <br>
</center>
</address>
</footer>
</body>
</html>
자바에서 DB를 연동하는 샘플 코드이다.
오라클 드라이버 미존재시 에러를 발생하니 추가를 필수로 해주자.
성공 화면
리스트
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- db 호출시 사용 -->
<%@ page import="java.sql.*" %>
<%
String url = "jdbc:oracle:thin:@//localhost:1521/xe";
String userid = "system";
String userpwd = "1234";
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection(url, userid, userpwd);
String sql = "select * from examtbl";
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
header{
background-color:blue;
height:75px;
line-height:75px;
text-align:center;
font-size:30px;
color:#ffffff;
}
nav{
background-color:#6699ff;
height:30px;
line-height:30px;
text-align:left;
font-size:16px;
color:#ffffff;
}
section{
min-height:600px;
text-align:left;
}
footer{
background-color:#0044ff;
text-align:center;
height:60px;
font-size:12px;
color:#ffffff;
line-height:20px;
}
</style>
</head>
<body>
<div align=center>
<header>(과정 평가형 정보처리기능사) 성적조회 프로그램 ver1.0</header>
<nav>  
<a href=form.jsp>성적입력 </a>
<a href=list.jsp>성적조회 </a>
<a href=index.jsp>홈으로</a>
</nav>
<section>
<br>
<div align=center>
<h2>성적 조회 목록</h2>
<table border=1 width=700px;>
<tr>
<td>학년</td><td>반</td><td>번호</td><td>성명</td>
<td>국어</td><td>영어</td><td>수학</td><td>역사</td>
<td>총점</td><td>평균</td>
</tr>
<% while (rs.next()){
String sno1 = rs.getString("sno").substring(0,1);
String sno2 = rs.getString("sno").substring(1,3);
String sno3 = rs.getString("sno").substring(3,5);
String sname = rs.getString("sName");
int kor = rs.getInt("kor");
int eng = rs.getInt("eng");
int math = rs.getInt("math");
int hist = rs.getInt("hist");
int sum = kor + eng + math + hist;
double avg = sum /4;
%>
<tr>
<td><%=sno1%></td><td><%=sno2%></td><td><%=sno3%></td><td><%=sname%></td>
<td><%=kor%></td><td><%=eng%></td>
<td><%=math%></td><td><%=hist%></td>
<td><%=sum%></td><td><%=avg%></td>
</tr>
<%} %>
</table>
</div>
</section>
</div>
<footer>
<div align=center>
<address>
<center>
Web site Layout DB Connection Page.<br>
Home page : http://www.visiongongjang.com <br>
mobile : 010-2222-3333 <br>
</center>
</address>
</div>
</footer>
</body>
</html>
DB를 연동하여 테이블 데이터를 불러와 출력하는 코드이다.
테이블 데이터를 불러올때 직접 입력하는 것보다 평균과 합계의 연산이 있으니
별도의 변수를 선언하여 연산을 먼저 진행 한 뒤에 값을 불러오는 방법이 보다 깔끔한 코드작성을 도와준다.
성적 저장
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- db 호출시 사용 -->
<%@ page import="java.sql.*" %>
<%
String url = "jdbc:oracle:thin:@//localhost:1521/xe";
String userid = "system";
String userpwd = "1234";
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection(url, userid, userpwd);
String sql = "select * from examtbl";
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
header{
background-color:blue;
height:75px;
line-height:75px;
text-align:center;
font-size:30px;
color:#ffffff;
}
nav{
background-color:#6699ff;
height:30px;
line-height:30px;
text-align:left;
font-size:16px;
color:#ffffff;
}
section{
min-height:600px;
text-align:left;
}
footer{
background-color:#0044ff;
text-align:center;
height:60px;
font-size:12px;
color:#ffffff;
line-height:20px;
}
</style>
</head>
<body>
<div align=center>
<header>(과정 평가형 정보처리기능사) 성적조회 프로그램 ver1.0</header>
<nav>  
<a href=form.jsp>성적입력 </a>
<a href=list.jsp>성적조회 </a>
<a href=index.jsp>홈으로</a>
</nav>
<section>
<br>
<div align=center>
<h2>학생 성적 입력</h2>
<form action="formOk.jsp">
<table border=1>
<tr><td>학번</td><td><input type=text name=sno></td></tr>
<tr><td>성명</td><td><input type=text name=sname></td></tr>
<tr><td>국어</td><td><input type=text name=kor></td></tr>
<tr><td>영어</td><td><input type=text name=eng></td></tr>
<tr><td>수학</td><td><input type=text name=math></td></tr>
<tr><td>역사</td><td><input type=text name=hist></td></tr>
<tr><td colspan=2 align=center><input type=submit value="성적저장"></td></tr>
</table>
</form>
</div>
<br>
</section>
</div>
<footer>
<div align=center>
<address>
<center>
Web site Layout DB Connection Page.<br>
Home page : http://www.visiongongjang.com <br>
mobile : 010-2222-3333 <br>
</center>
</address>
</div>
</footer>
</body>
</html>
성적 저장(쿼리문)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%
String sno = request.getParameter("sno");
String sname = request.getParameter("sname");
String kor = request.getParameter("kor");
String eng = request.getParameter("eng");
String math = request.getParameter("math");
String hist = request.getParameter("hist");
String url = "jdbc:oracle:thin:@//localhost:1521/xe";
String userid = "system";
String userpwd = "1234";
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection(url, userid, userpwd);
String Insert_sql = "insert into examtbl (sno, sname, kor, eng, math, hist) values(?, ?, ?, ?, ?, ?)";
PreparedStatement pstmt = con.prepareStatement(Insert_sql);
pstmt.setString(1, sno);
pstmt.setString(2, sname);
pstmt.setString(3, kor);
pstmt.setString(4, eng);
pstmt.setString(5, math);
pstmt.setString(6, hist);
pstmt.executeUpdate();
response.sendRedirect("list.jsp");
%>
학생 정보 입력 화면을 구현한 코드이다.
데이터 정보를 입력하여 DB에 입력한 정보를 저장하도록 한다.
파라미터의 값을 리퀘스트하여 변수로 선언하고 쿼리문에 적용하여 해당 값을 데이터에 저장하도록 한다.