- DB연결-WebApp09 목차
WebApp09_scott.sql
SELECT USER
FROM DUAL;
--==>> SCOTT
--○ 여러 명의 이름, 국어, 영어, 수학 점수를 입력받아
-- 총점과 평균을 계산하여 출력해줄 수 있는 프로그램을 구현한다.
-- 데이터페비으를 연동하여 처리한다.
-- 즉, 성적 처리 프로그램을 데이터베이스 연동하여 jsp 로 구성할 수 있도록 한다.
--○ 기존 테이블 제거
DROP TABLE TBL_SCORE PURGE;
--==>> Table TBL_SCORE이(가) 삭제되었습니다.
--○ 실습 테이블 생성
CREATE TABLE TBL_SCORE
( SID NUMBER
, NAME VARCHAR2(30)
, KOR NUMBER(3)
, ENG NUMBER(3)
,MAT NUMBER(3)
);
--==>> Table TBL_SCORE이(가) 생성되었습니다.
--○ 제약조건 추가
ALTER TABLE TBL_SCORE
ADD (CONSTRAINT SCORE_SID_PK PRIMARY KEY(SID)
,CONSTRAINT SCORE_KOR_CK CHECK(KOR BETWEEN 0 AND 100)
,CONSTRAINT SOCRE_ENG_CK CHECK(ENG BETWEEN 0 AND 100)
,CONSTRAINT SCORE_MAT_CK CHECK(MAT BETWEEN 0 AND 100) );
--==>> Table TBL_SCORE이(가) 변경되었습니다.
-- ○ 기존 시퀀스 제거
DROP SEQUENCE SCORESEQ;
--==>> Sequence SCORESEQ이(가) 삭제되었습니다.
-- ○ 시퀀스 생성
CREATE SEQUENCE SCORESEQ
NOCACHE;
--==>> Sequence SCORESEQ이(가) 생성되었습니다.
-- ○ 리스트 조회 쿼리문 작성
SELECT SID, NAME, KOR, ENG, MAT
, (KOR+ENG+MAT) AS TOT
, ((KOR+ENG+MAT)/3) AS AVG
FROM TBL_SCORE
ORDER BY SID ASC;
--==>> ○ 한 줄 구성
SELECT SID, NAME, KOR, ENG, MAT, (KOR+ENG+MAT) AS TOT, ((KOR+ENG+MAT)/3) AS AVG FROM TBL_SCORE ORDER BY SID ASC
;
-- ○ 데이터 입력 쿼리문 구성
INSERT INTO TBL_SCORE(SID, NAME,KOR,ENG,MAT)
VALUES(SCORESEQ.NEXTVAL,'이성조',90,80,70);
--==>> 한 줄 구성
INSERT INTO TBL_SCORE(SID, NAME,KOR,ENG,MAT) VALUES(SCORESEQ.NEXTVAL,'이성조',90,80,70)
;
--==>> 1 행 이(가) 삽입되었습니다.
COMMIT;
--==>> 커밋 완료.
ScoreDAO.java
/*
데이터베이스 액션 처리 전용 객체 활용
*/
package com.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.util.DBConn;
public class ScoreDAO
{
private Connection conn;
public ScoreDAO()throws SQLException, ClassNotFoundException
{
conn=DBConn.getConnection();
}
//데이터 입력 메소드 정의
public int add(ScoreDTO score)throws SQLException
{
int result=0;
//DB는 연결됐으니 sql문하고
String sql="INSERT INTO TBL_SCORE(SID, NAME,KOR,ENG,MAT) VALUES(SCORESEQ.NEXTVAL,?,?,?,?)";
//작업객체 생성
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setString(1, score.getName());
pstmt.setString(2, score.getKor());
pstmt.setString(3, score.getEng());
pstmt.setString(4, score.getMat());
result=pstmt.executeUpdate();
pstmt.close();
return result;
}
//리스트 전체 출력 메소드 정의
public ArrayList<ScoreDTO> lists() throws SQLException
{
ArrayList<ScoreDTO> result=new ArrayList<ScoreDTO>();
String sql="SELECT SID, NAME, KOR, ENG, MAT, (KOR+ENG+MAT) AS TOT, ((KOR+ENG+MAT)/3) AS AVG FROM TBL_SCORE ORDER BY SID ASC";
PreparedStatement pstmt=conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next())
{
ScoreDTO score = new ScoreDTO();
score.setSid(rs.getString("SID"));
score.setName(rs.getString("NAME"));
score.setKor(rs.getString("KOR"));
score.setEng(rs.getString("ENG"));
score.setMat(rs.getString("MAT"));
result.add(score);
}
rs.close();
pstmt.close();
return result;
}
/*
* //인원 수 확인 메소드 public int count()throws SQLException {
*
* int count=0;
*
* String sql=""
*
* return count; }
*
*/
}
ScoreDTO.java
package com.test;
public class ScoreDTO
{
private String sid,name,kor,eng,mat,tot,avg;
public String getSid()
{
return sid;
}
public void setSid(String sid)
{
this.sid = sid;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getKor()
{
return kor;
}
public void setKor(String kor)
{
this.kor = kor;
}
public String getEng()
{
return eng;
}
public void setEng(String eng)
{
this.eng = eng;
}
public String getMat()
{
return mat;
}
public void setMat(String mat)
{
this.mat = mat;
}
public String getTot()
{
return tot;
}
public void setTot(String tot)
{
this.tot = tot;
}
public String getAvg()
{
return avg;
}
public void setAvg(String avg)
{
this.avg = avg;
}
}
DBConn.java
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConn
{
private static Connection dbConn;
public static Connection getConnection() throws ClassNotFoundException, SQLException
{
if (dbConn == null)
{
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "scott";
String pwd = "tiger";
Class.forName("oracle.jdbc.driver.OracleDriver");
dbConn = DriverManager.getConnection(url, user, pwd);
}
return dbConn;
}
public static Connection getConnection(String url, String user, String pwd) throws ClassNotFoundException, SQLException
{
if (dbConn == null)
{
Class.forName("oracle.jdbc.driver.OracleDriver");
dbConn = DriverManager.getConnection(url, user, pwd);
}
return dbConn;
}
public static void close() throws SQLException
{
if (dbConn != null)
{
if(!dbConn.isClosed())
dbConn.close();
}
dbConn = null;
}
}
ScoreInsert.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%
//ScoreInsert.jsp
//데이터 입력 처리 페이지
request.setCharacterEncoding("UTF-8");
String userName=request.getParameter(")
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
ScoreList.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function formCheck()
{
var userName=document.getElementById("userName");
var nameMsg=document.getElementById("nameMsg");
var userKor=document.getElementById("userKor");
var kormsg =document.getElementById("kormsg");
var userEng = document.getElementById("userEng");
var engmsg = document.getElementById("engmsg");
var userMat = document.getElementById("userMat");
var matmsg = document.getElementById("matmsg");
nameMsg.style.display="none";
kormsg.style.display="none";
engmsg.style.display="none";
matmsg.style.display="none";
if(userName=="")
{
nameMsg.style.display="inline";
nameMsg.focus();
return false;
}
if(userKor.value =="" || isNaN(userKor.value) || Number(userKor.value) <0 || Number(userKor)>100 )
}
</script>
</head>
<body>
<div>
<h1>데이터베이스 연동 점수관리 실습</h1>
</div>
<form action="SCoreInsert.jsp" method="post" onsubmit="return formCheck()">
<table class="tbl">
<tr>
<th>이름(*)</th>
<td>
<input type="text" id="userName" name="userName">
<span class="errMsg" id="nameMsg">이름을 입력해야 합니다</span>
</td>
</tr>
<tr>
<th>국어점수입력</th>
<td>
<input type="text" id="userKor" name="userKor">
<span class="errMsg" id="kormsg">0부터100점</span>
</td>
</tr>
<tr>
<th>영어점수입력</th>
<td>
<input type="text" id="userEng" name="userEng">
<span class="errMsg" id="engmsg">0~100사이
</span>
</td>
</tr>
<tr>
<th>수학점수 입력</th>
<td>
<input type="text" id="userMat" name="userMat">
<span clas="errMsg" id="kormsg">0~100사이</span>
</td>
</tr>
<tr>
<td colspan="2">
<button type="submit" class="btn">회원 추가</button>
</td>
</tr>
</table>
</body>
</html>
'Web(국비) > DB연결' 카테고리의 다른 글
[Java]Cookie란? (0) | 2019.10.30 |
---|---|
[JAVA]-BEAN (0) | 2019.10.29 |
DB-연결 WebApp08 (0) | 2019.10.28 |
[Java] score DB연결 (0) | 2019.10.28 |
DB연결1 (0) | 2019.10.27 |