JSP/2012.04강의(MySQL)
4일차 JDBC
Bohemian life
2012. 5. 25. 11:31
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="bean.Item" %> <%@ page import="java.util.ArrayList" %> <!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=UTF-8"> <title>db에서 jsp2테이블 값을 다 가져오기</title> <link href="myStyle.css" rel="stylesheet" type="text/css" /> </head> <body> <% //1 . 드라이버 로딩 Class.forName("com.mysql.jdbc.Driver"); Connection conn=null; Statement stmt=null; ResultSet rs=null; //2. 연결 try{ // test는 database 이름 입니다 // mysql안에 database 만드는 명령 : // c:/> mysqladmin -u root create test -p String url="jdbc:mysql://localhost:3306/test"; String user="root"; // 계정 이름 String password="1234"; //계정 비밀번호 conn= DriverManager.getConnection(url, user, password); out.print("연결성공 :"+ conn.toString()); }catch(Exception e){ out.print("연결 실패-"+e.getMessage()); } String query= "select * from jsp2;"; stmt=conn.createStatement(); //db에 명령을 날리면 결과가 옵니다 rs=stmt.executeQuery(query); /* out.print("<table>"); while( rs.next()){ //한칸 아래로 이동 out.print("<tr><td> no </td><td>"); out.print(rs.getString("no")+"</td></tr>"); out.print("<tr><td id='title'> title </td><td class='title'>"); out.print(rs.getString("title")+"</td></tr>"); out.print("<tr><td> context </td><td>"); out.print(rs.getString("context")+"</td></tr>"); } out.print("</table>"); */ ArrayList<Item> arrayList=new ArrayList<Item>(); while(rs.next()){ // String -> int 로 cast int no=Integer.parseInt( rs.getString("no")); String title=rs.getString("title"); String context=rs.getString("context"); Item item=new Item(no, title, context); arrayList.add(item); %> <table> <tr> <td colspan="3"> 예제 테이블명 : jsp2 </td> </tr> <tr> <th>no</th> <td>title</td> <td>context</td> </tr> <tr> <td><%=no %></td> <td> <a href="day04_modify.jsp?no=<%=no%>"> <%=title%> </a> </td> <td><%=context %></td> </tr> </table> <% }// while문 닫기 rs.close(); stmt.close(); conn.close(); %> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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=UTF-8"> <title>게시판 입력 폼</title> <style> table{ border:1px thin red ; border-style: solid ; padding: 10px 10px 10px 10px ; background-color: silver; } </style> </head> <body> <form action="day04_insert.jsp"> <table> <tr> <td>글제목</td> <td> <input type="text" name="title" size="20" required="required"> </td> </tr> <tr> <td>글내용 </td> <td> <textarea rows="5" name="context"></textarea> </td> </tr> <tr> <td> <input type="submit" value="저장"> </td> </tr> <tr> </tr> </table> </form> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <!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=UTF-8"> <title>수정/삭제 페이지 </title> <link rel="stylesheet" href="myStyle.css" type="text/css" > <script> function openWindow(url, name){ /* 다이얼로그 띄우기 */ window.open(url, name, "scrollbars=yes, status=no, resizable=no," + "width=500 , height=500"); } </script> </head> <body> <% String no=request.getParameter("no"); // no에 해당하는 데이터를 db에서 불러와서 화면에 보여주자 // 커넥션을 맺고(web.xml에서 기본으로 한다) // no에 해당하는 데이터를 select문으로 불러와서 Connection conn=null; Statement stmt=null; ResultSet rs=null; //2. 연결 try{ // test는 database 이름 입니다 // mysql안에 database 만드는 명령 : // c:/> mysqladmin -u root create test -p String url="jdbc:mysql://localhost:3306/test"; String user="root"; // 계정 이름 String password="1234"; //계정 비밀번호 conn= DriverManager.getConnection(url, user, password); out.print("연결성공 :"+ conn.toString()); }catch(Exception e){ out.print("연결 실패-"+e.getMessage()); %><% } String query= "select * from jsp2 where no="+no ; stmt=conn.createStatement(); //db에 명령을 날리면 결과가 옵니다 rs=stmt.executeQuery(query); // resultSet을 읽어서 화면에 출력하기 String title="nothing"; String context="nothing"; if( rs.next() ){ title = rs.getString("title"); context = rs.getString("context"); } %> <form action="day04_update.jsp"> <input type="hidden" name="no" value="<%=no %>"> <table> <tr> <td>글번호</td> <td> <%=no %></td> </tr> <tr> <td>글제목</td> <td> <input type="text" name="title" size="20" value="<%=title %>" required="required"> </td> </tr> <tr> <td>글내용 </td> <td> <textarea rows="5" name="context"> <%=context %> </textarea> </td> </tr> <tr> <td> <input type="submit" value="수정"> </td> <td> <input type="button" value="삭제" onClick="openWindow('day04_delete.jsp?no=<%=no%>', 'db에서 <%=no %>번 글 지우기')" > </td> </tr> <tr> </tr> </table> </form> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import ="java.sql.*" %> <!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=UTF-8"> <title>db에 인서트 하기</title> </head> <body> <% //1 . 드라이버 로딩 Class.forName("com.mysql.jdbc.Driver"); Connection conn=null; Statement stmt=null; ResultSet rs=null; //2. 연결 try{ //test는 database 이름 입니다 //mysql안에 database 만드는 명령: //c:/>mysqladmin -u root creat test -p String url="jdbc:mysql://localhost:3306/test"; String user="root"; // 계정 이름 String password="1234"; //계정 비밀번호 conn = DriverManager.getConnection(url, user, password); out.print("연결성공 :"+ conn.toString()); }catch(Exception e){ out.print("연결 실패-"+e.getMessage()); } /* create table jsp2(no integer primary key auto_increment, title varchar(20),context varchar(100)); */ String sql="insert into jsp2 (title,context) values(?,?);"; PreparedStatement preState = conn.prepareStatement(sql); String title=request.getParameter("title");//첫번째? String context=request.getParameter("context");//두번째? preState.setString(1,title);//첫번째 ?값을 셋팅하기 preState.setString(2,context);//두번째 ?값을 셋팅하기 int outcome=-1; outcome=preState.executeUpdate();//insert 문 실행 if(outcome>0){ out.print("insert 성공 <br/>"); out.print("결과"+outcome); } %> db에 insert하고 dayo4_list.jsp로 이동하게 만듭니다. <jsp:forward page="day04_list.jsp"></jsp:forward> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <!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=UTF-8"> <title>파라미터를 받아서 db업데이트 하기</title> </head> <body> <% Connection conn=null; Statement stmt=null; ResultSet rs=null; //2. 연결 try{ // test는 database 이름 입니다 // mysql안에 database 만드는 명령 : // c:/> mysqladmin -u root create test -p String url="jdbc:mysql://localhost:3306/test"; String user="root"; // 계정 이름 String password="1234"; //계정 비밀번호 conn= DriverManager.getConnection(url, user, password); out.print("연결성공 :"+ conn.toString()); }catch(Exception e){ out.print("연결 실패-"+e.getMessage()); } // 파라미터 3개 받아서 update명령을 날리기 String no=request.getParameter("no"); String title=request.getParameter("title"); String context=request.getParameter("context"); String sql="update jsp2 set title=? , context= ? where no=? "; PreparedStatement preState= conn.prepareStatement(sql); preState.setString(1, title); //1th ? preState.setString(2, context); //2th ? preState.setString(3, no); //3th ? int outcome=preState.executeUpdate(); out.print("update 리턴값 : "+ outcome +" <br/>"); // 업데이트 되었습니다. list로 돌아가겠습니까 바로가기 만들기 %> a태그가 싫을 때 간단하게 넘어가는 방법입니다 <br /> &sp; button onClick:= " javascript:location.href=' x.jsp ' "> <br /> <button onClick="javascript:location.href='day04_list.jsp' "> list로 되돌아가기 </button> insert/ delete / update/ select /select All </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <!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=UTF-8"> <title>request 파라미터 no값에 해당하는 row지우기</title> </head> <body> <% Connection conn=null; Statement stmt=null; ResultSet rs=null; //2. 연결 try{ // test는 database 이름 입니다 // mysql안에 database 만드는 명령 : // c:/> mysqladmin -u root create test -p String url="jdbc:mysql://localhost:3306/test"; String user="root"; // 계정 이름 String password="1234"; //계정 비밀번호 conn= DriverManager.getConnection(url, user, password); out.print("연결성공 :"+ conn.toString()); }catch(Exception e){ out.print("연결 실패-"+e.getMessage()); } String sql="delete from jsp2 where no=?"; PreparedStatement preState= conn.prepareStatement(sql); String no=request.getParameter("no"); preState.setString(1, no); int outcome = preState.executeUpdate(); out.print("outcome="+outcome+"<br />"); out.print(no+"에 해당하는 데이터를 지웠습니다 <br/>"); %> <br/> <a href="day04_list.jsp"> list보기로 되돌아가기 </a> </body> </html>