60일차_JAVA

서창민·2023년 6월 5일
0

JAVA

목록 보기
13/21
post-thumbnail

23.06.05 60일차

JAVA

  • JSP
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>&emsp;&emsp;
			<a href=form.jsp>성적입력&emsp;</a>
			<a href=list.jsp>성적조회&emsp;</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>&emsp;&emsp;
			<a href=form.jsp>성적입력&emsp;</a>
			<a href=list.jsp>성적조회&emsp;</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에 입력한 정보를 저장하도록 한다.

파라미터의 값을 리퀘스트하여 변수로 선언하고 쿼리문에 적용하여 해당 값을 데이터에 저장하도록 한다.


profile
Back-end Developer Preparation Students

0개의 댓글