JSP

[JSP] 간단 db연동 실습

jackypark 2022. 10. 7. 17:33

 

 

메인화면이다.

 이름, email주소에 값을 넣고 등록 하면 등록 목록에 등록했던 이름,email주소가 다 나오게 된다.

main.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<center>
<h1>이벤트 등록</h1>
    <form action="jdbctest2.jsp" method="get">
<hr>
 등록이름: <input type="text" name="name"> email주소: <input type="email" name="email">
    <input type="submit" value="등록">
    </form>
</center>
<hr>
<%@ include file ="findName.jsp"%>
</body>
</html>

DB에 값을 넣는 부분이다.(INSERT 문)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.sql.*" %>
<%
    request.setCharacterEncoding("UTF-8");
    String name=request.getParameter("name");
    String email=request.getParameter("email");

    Connection conn=null;
    String sql="INSERT INTO TASK (Name,Email) VALUES (?,?)";
    try{
        Context init = new InitialContext();
        DataSource ds=(DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
        conn=ds.getConnection();
        PreparedStatement pstmt=conn.prepareStatement(sql);

        pstmt.setString(1,name);
        pstmt.setString(2,email);
            if(pstmt.executeUpdate()!=0) {
                response.sendRedirect("task1.jsp");
            }

    }catch(Exception e){
        out.println("<h3>레코드 등록실패</h3>");
        e.printStackTrace();
    }
%>

DB에서 값을 불러오는 부분이다

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.sql.*" %>

<%
    request.setCharacterEncoding("UTF-8");
    String name=request.getParameter("name");
    String email=request.getParameter("email");
    Connection conn=null;
    String sql="Select * from TASK";
    try{
        Context init = new InitialContext();
        DataSource ds=(DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
        conn=ds.getConnection();
        PreparedStatement pstmt=conn.prepareStatement(sql);
        ResultSet rs=pstmt.executeQuery();
        out.println("<h3>등록 목록</h3>");
            int i = 1;
            while(rs.next()) {
                out.println("<h3>"+ i++ + ": " + rs.getString(1)+","+rs.getString(2)+"</h3>");
            }
            rs.close();


    }catch(Exception e){
        out.println("<h3>레코드 등록실패</h3>");
        e.printStackTrace();
    }
%>

 

느낀 점 :

방학때 프로젝트하면서 jdbc를 사용해서 db를 연결 시켰었는데 이번과 동일하게 연동 시켰었다.. 하지만 그때는 왜 그렇게 사용했는지 몰랐는데 이번에 다시 배우면서 이 구문을 왜 쓰는지 하나씩 알게 되었다.