jsp model1 게시판으로 간단하게 insert문을 실행해보려고 하는데요~
insert문은 select.jsp에서 insertForm으로 가게끔 처리해주었는데요~
insertProc라고 해서 insert가 dao를 통해서 동작하게끔 하는 작업도 같이 넣어줘야합니다~
select문부터 살펴볼까요~ㅎㅎㅎ
- select.jsp
<script type="text/javascript">
function insert() {
location.href = "insertForm.jsp";
}
</script>
이렇게 처리하면 insertForm.jsp로 바로 가게끔 됩니다~!!
그리고 insertForm.jsp와 insertProc.jsp를 살펴볼까요~ㅎㅎ
- insertForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
insertForm.jsp<br><br>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
function inputCheck(){
//alert(1);
str = "입력한 항목은\n";
//if(document.myform.title.value.length==0){
if(document.myform.title.value==""){
alert("제목입력하세요");
return false;
}
if(document.myform.author.value==""){
alert("저자입력하세요");
return false;
}
if(document.myform.publisher.value==""){
alert("출판사입력하세요");
return false;
}
if(document.myform.price.value==""){
alert("가격입력하세요");
return false;
}
if(isNaN(document.myform.price.value)){
alert("가격은 숫자로 입력하세요");
//document.myform.price.value="";
document.myform.price.select();
return false;
}
if(document.myform.bdate.value==""){
alert("입고일 입력하세요");
return false;
}
str += document.myform.title.value+"\n";
str += document.myform.author.value+"\n";
str += document.myform.publisher.value+"\n";
str += document.myform.price.value+"\n";
str += document.myform.bdate.value+"\n";
var len = document.myform.kind.length; // 2
flag = false;
for(var i=0;i<len;i++){
if(document.myform.kind[i].checked == true){
str += document.myform.kind[i].value +"\n";
flag = true;
}
}
if(flag == false){
alert("배송비 유무를 선택하세요");
return false;
}
var len = document.myform.bookstore.length; // 4
flag = false;
for(var i=0;i<len;i++){
if(document.myform.bookstore[i].checked == true){
flag = true;
str += document.myform.bookstore[i].value+" ";
}
}
str += "\n";
if(flag == false){
alert("서점 최소 하나는 선택하세요");
return false;
}
/* if(document.myform.count.value=="선택"){
alert("보유 수량을 선택하세요");
return false;
} */
index = document.myform.count.selectedIndex;
if(index == 0){
alert("보유 수량을 선택하세요");
return false;
}
str += document.myform.count.value;
alert(str);
}
</script>
</head>
<body>
<h1>도서 정보 입력</h1>
<form name="myform" action="insertProc.jsp" method="post">
<table border=1>
<tr>
<td>제목</td>
<td><input type="text" name="title" id="title"></td>
</tr>
<tr>
<td>저자</td>
<td><input type="text" name="author" id="author"></td>
</tr>
<tr>
<td>출판사</td>
<td><input type="text" name="publisher" id="publisher"></td>
</tr>
<tr>
<td>가격</td>
<td><input type="text" name="price" id="price"></td>
</tr>
<tr>
<td>입고일</td>
<td><input type="date" name="bdate" id="bdate"></td>
</tr>
<tr>
<td>배송비</td>
<td>유료 <input type="radio" name="kind" id="kind" value="유료">
무료 <input type="radio" name="kind" id="kind" value="무료">
</td>
</tr>
<tr>
<td>구입가능 서점</td>
<td>교보문고 <input type="checkbox" name="bookstore" value="kyobo">
알라딘 <input type="checkbox" name="bookstore" value="aladin">
yes24 <input type="checkbox" name="bookstore" value="yes24">
인터파크 <input type="checkbox" name="bookstore" value="interpark">
</td>
</tr>
<tr>
<td>보유수량</td>
<td><select name="count" id="count">
<option value="선택">선택</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select></td>
</tr>
</table>
<br> <input type="submit" value="전송" onclick="return inputCheck()">
<input type="reset" value="취소">
</form>
</body>
</html>
- insertProc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
insertProc.jsp<br><br>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="bb" class="book.BookBean"/>
<jsp:useBean id="dao" class="book.BookDao"/>
<jsp:setProperty property="*" name="bb"/>
<%
System.out.println(bb.getTitle());
System.out.println(bb.getAuthor());
System.out.println(bb.getPublisher());
System.out.println(bb.getPrice());
%>
<%
String[] bookstore = request.getParameterValues("bookstore");
String str="";
for(int i=0; i<bookstore.length; i++){
str += bookstore[i]+" ";
}
bb.setBookstore(str);
int cnt = dao.insertData(bb);
if(cnt == 1){
response.sendRedirect("select.jsp");
}else{
response.sendRedirect("insertForm.jsp");
}
%>
자 이렇게 하면 insert문이 처리되는데요~
현재 insertData를 받아줄 dao가 없죠~
dao도 만들어보겠습니다.
그리고 javascript로 유효성검사를 하게 처리했는데, 아무것도 입력을 안하면 alert창이 뜨게됩니다.
checkbox로 된 bookstore(서점은) 입력값이 띄어쓰기를 써서 나오게끔 처리했기때문에 하나값이 아니고 두 세개값을
넣으면 띄어쓰기로 웹 페이지에 나타나게끔 해주죠~ㅎㅎㅎ
jsp에서는 useBean을 통해 dao나 bean값을 연결시키게끔 해주었기 때문에 값을 바로 가져올 수 있습니다,,,
- BookDao.java
package book;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import book.BookBean;
public class BookDao {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String dbid="scott";
String dbpw="1234";
Connection conn = null;
public BookDao() {
try{
Class.forName(driver);
conn = DriverManager.getConnection(url,dbid,dbpw);
}catch(SQLException e){
e.printStackTrace();
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
public Vector<BookBean> getAllBook(){
String sql = "select * from book order by bnum";
PreparedStatement pstmt=null;
ResultSet rs = null;
Vector<BookBean> lists = new Vector<BookBean>();
try{
pstmt=conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
int bnum = rs.getInt("bnum");
String title = rs.getString("title");
String author = rs.getString("author");
String publisher = rs.getString("publisher");
String price = rs.getString("price");
String bdate = rs.getString("bdate");
String kind = rs.getString("kind");
String bookstore = rs.getString("bookstore");
String count = rs.getString("count");
BookBean bb = new BookBean(bnum,title,author,publisher,price,bdate,kind,bookstore,count);
lists.add(bb);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs!=null)
rs.close();
if(pstmt!=null)
pstmt.close();
if(conn!=null)
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
return lists;
}
public int insertData(BookBean bean) {
PreparedStatement pstmt = null;
String sql = "insert into book(bnum,title,author,publisher,price,bdate,kind,bookstore,count) "
+ "values(b_seq.nextval,?,?,?,?,?,?,?,?)";
int cnt=-1;
try{
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, bean.getTitle());
pstmt.setString(2, bean.getAuthor());
pstmt.setString(3, bean.getPublisher());
pstmt.setString(4, bean.getPrice());
pstmt.setString(5, bean.getBdate());
pstmt.setString(6,bean.getKind());
pstmt.setString(7, bean.getBookstore());
pstmt.setString(8, bean.getCount());
cnt=pstmt.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(pstmt!=null)
pstmt.close();
if(conn!=null)
conn.close();
}catch(Exception e2){
e2.printStackTrace();
}
}
return cnt;
}
}
pstmt = conn.prepareStatement(sql);으로 insert가 되게끔 해주었고요~
select와 마찬가지로 insert도 try catch문을 써서 pstmt와 conn을 close하게하여 예외처리가 발생하지 않게끔
짜보았습니다~ㅎㅎ
이제 updat문과 delete문이 남았는데요~
이것도 이어서 만들어보고록 할께요~ 질문이나 하실 말씀이 있으시다면 방명록이나 공지사항에 있는 메일로
보내주시면 감사하겠습니다~@#!$%^&*()!!
'IT 관련,, > Java관련 언어들' 카테고리의 다른 글
[웹/JSP]jsp model1 간단한 도서관리게시판-5(delete문) (0) | 2020.08.09 |
---|---|
[웹/JSP]jsp model1 간단한 도서관리게시판-4(update문) (0) | 2020.08.09 |
[웹/JSP]jsp model1 간단한 도서관리게시판-2(dao, select문) (0) | 2020.08.08 |
[웹/JSP]jsp model1 간단한 도서관리게시판-1(bean, oracle설정) (0) | 2020.08.08 |
[웹/jQuery]제이쿼리 Json에 대해서 알아보자~!! (0) | 2020.08.02 |