JSP 데이터베이스 연결
⚡ 스마트 요약
JSP 데이터베이스 연결을 사용하면 웹 애플리케이션이 JSP 페이지를 관계형 데이터베이스에 연결하여 대용량 데이터를 저장하고 관리할 수 있습니다. 이 자료에서는 JSP 데이터베이스 연결을 생성하는 방법을 설명합니다. MySQL JSTL SQL 태그를 사용하여 테이블에 레코드를 삽입하고, 선택, 삽입, 업데이트 및 삭제 작업을 수행합니다.

JSP에서 데이터베이스에 연결하기
데이터베이스는 기가바이트 단위의 대용량 데이터를 비롯한 다양한 유형의 데이터를 저장하는 데 사용됩니다. JSP는 이러한 데이터베이스에 연결하여 레코드를 생성하고 관리할 수 있습니다.
본 튜토리얼에서는 데이터베이스에 테이블을 생성하는 방법과 JSP를 통해 이러한 테이블에 레코드를 생성하는 방법에 대해 알아봅니다.
표 만들기
In MYSQL 데이터베이스우리는 어떤 MySQL 클라이언트를 사용해서든 데이터베이스에 테이블을 생성할 수 있습니다. 여기서는 PHPMyAdmin 클라이언트를 사용하고 있으며, 아래 스크린샷과 같이 "새로 만들기" 옵션을 통해 새 테이블을 생성할 수 있습니다.
이 경우 테이블 이름은 guru_test로 지정해야 하며, emp_id와 emp_name이라는 두 개의 필드를 생성해야 합니다.
- Emp_id의 데이터 형식은 int입니다.
- Emp_name의 데이터 형식은 varchar입니다.
또 다른 방법은 명령 프롬프트를 사용하고 MySQL 디렉터리로 이동하는 것입니다.
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
다음과 같이 데이터베이스에 로그인할 수 있습니다.
C:\Program Files\MYSQL\bin>mysql –u gururoot –p Enter Password: ******* Mysql>
데이터베이스에 guru_test라는 이름의 테이블을 생성합니다. GuruMySQL 프롬프트에서 다음과 같이 테스트하십시오.
Mysql> use GuruTest; MySql> create table guru_test( Emp_id int NOT NULL, Emp_name varchar(11), ); Once you execute this you get the following: Query OK, 0 rows affected(0.10 sec) MySQl> select * from guru_test; Query OK, 0 rows affected(0.10 sec)
먼저 레코드는 다음을 사용하여 삽입됩니다. INSERT 쿼리를 수행한 다음 이를 사용할 수 있습니다. SELECT 테이블이 생성되었는지 여부를 확인하는 쿼리입니다.
레코드 만들기
테이블을 생성한 후에는 아래에 표시된 삽입 쿼리를 사용하여 guru_test 테이블에 레코드를 생성해야 합니다.
여기에 입력된 기록은 다음과 같습니다.
- 1 및 전문가 emp1
- 2 및 전문가 emp2
MySql>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('1', 'guru emp1'); Query OK, 1 row affected (0.05 sec) MySQL>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('2', 'guru emp2'); Query OK, 1 row affected (0.05 sec)
JSP Opera삽입, 업데이트, 삭제, 선택
JSP를 사용하면 데이터베이스에서 다양한 작업을 수행할 수 있습니다. 레코드를 삽입할 수도 있고, 필요 없는 레코드를 삭제할 수도 있습니다. 레코드를 수정해야 하는 경우에는 업데이트 작업을 사용하면 됩니다. SELECT 작업은 필요한 레코드를 가져오는 데 도움이 됩니다.
선택
선택 작업은 테이블에서 레코드를 선택하는 데 사용됩니다.
예:
이 예제에서는 앞 섹션에서 생성한 guru_test 테이블에서 레코드를 가져오는 select 작업에 대해 알아보겠습니다.
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <sql:query dataSource="${snapshot}" var="result"> SELECT * from guru_test; </sql:query> <table> <tr> <th>Guru ID</th> <th>Name</th> </tr> <c:forEach var="row" items="${result.rows}"> <tr> <td><c:out value="${row.emp_id}"/></td> <td><c:out value="${row.emp_name}"/></td> </tr> </c:forEach> </table> </body> </html>
코드 설명:
Code 1 라인 : 여기서는 io, util, 그리고 를 임포트하고 있습니다. SQL 자바의 라이브러리.
Code 3 라인 : 여기서는 JSTL의 핵심 라이브러리를 가져오고 접두사로 'c'를 지정하여 출력을 얻을 수 있도록 합니다.
Code 4 라인 : 여기서는 JSTL의 SQL 라이브러리를 가져오고 접두사로 'sql'을 지정하여 SQL 연산을 수행할 수 있도록 합니다.
Code 15-17행: 여기서는 SQL을 사용하여 "snapshot"이라는 변수 이름과 JDBC 드라이버를 지정하여 데이터 소스에 연결합니다. 또한 사용자 이름과 비밀번호로 "gururoot"와 "guru"를 추가합니다.
Code 19-21행: 여기서는 SELECT 쿼리라는 SQL 쿼리를 사용하고 있습니다.
Code 31-32행: 쿼리 결과에서 가져온 직원 ID와 직원 이름을 출력하고, foreach 루프를 사용하여 해당 출력을 출력합니다.
위 코드를 실행하면 다음과 같은 출력이 나타납니다.
출력:
여기서는 두 레코드 모두 데이터베이스에서 가져옵니다.
- 전문가 emp1 1명
- 전문가 emp2 2명
끼워 넣다
삽입 연산자는 레코드를 삽입하는 데 사용됩니다. 데이터베이스.
예:
이 예제에서는 guru_test 테이블에 레코드를 삽입하는 방법을 알아보겠습니다.
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurusql:update dataSource="${guru}" var="guruvar"> INSERT INTO guru_test VALUES (3, 'emp emp3'); </gurusql:update> </body> </html>
코드 설명:
Code 19-20행: 여기서는 guru_test 테이블에 레코드를 삽입하고 있습니다. Guru테스트 데이터베이스입니다. 삽입된 레코드는 empID - 3, empname - emp e입니다.mp3이 레코드들은 테이블에 삽입됩니다. 코드를 실행하면, 레코드들은 값 3과 직원 이름 e를 가지고 guru_test 테이블에 삽입됩니다.mp3.
참고 : 여기서는 단순히 테이블에 레코드를 삽입하는 것이므로 출력 결과를 보여주지 않습니다. 'select * from guru_test'와 같은 SELECT 쿼리를 사용하면 레코드를 가져올 수 있습니다. 레코드가 삽입되었다면 값은 3과 e로 표시됩니다.mp3레코드가 삽입되지 않으면 테이블의 레코드에서 3이 표시되지 않습니다.
.
이는 guru_test 테이블에서 레코드를 삭제하는 삭제 작업입니다.
예:
여기서는 삭제 쿼리를 사용하여 guru_test 테이블에서 레코드를 삭제합니다. 삭제할 레코드는 "guruid" 변수에 설정해야 하며, 해당 레코드가 데이터베이스에서 삭제됩니다.
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurucore:set var="guruid" value="3"/> <gurusql:update dataSource="${guru}" var="guruvar"> DELETE FROM guru_test WHERE emp_id = ? <gurusql:param value="${guruid}" /> </gurusql:update> </body> </html>
코드 설명:
Code 18 라인 : 값이 3인 변수 guruid를 설정하고 있으며 데이터베이스에서 삭제해야 합니다. 이는 항상 테이블의 기본 키입니다. 이 경우 기본 키는 emp_id입니다.
Code 19-22행: 여기서는 WHERE 절에 매개변수를 설정하는 삭제 쿼리를 사용하고 있습니다. 매개변수는 guruid이며, 코드 18번째 줄에서 설정됩니다. 해당 레코드가 삭제됩니다.
출력:
위 코드를 실행하면 emp_id가 3인 레코드가 삭제됩니다.
참고 : 이 예제에서는 테이블에서 레코드를 삭제하는 중이므로 출력 결과를 바로 보여드릴 수 없습니다. 레코드가 삭제되었는지 확인하려면 "select * from guru_test" 쿼리를 사용해야 합니다. 이 쿼리에서 직원 ID가 3으로 나오면 삭제 쿼리가 실패한 것이고, 그렇지 않으면 레코드가 성공적으로 삭제된 것입니다.
업데이트
업데이트는 테이블의 레코드를 편집하는 데 사용됩니다.
예:
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurucore:set var="guruid" value="2"/> <gurusql:update dataSource="${guru}" var="guruvar"> UPDATE guru_test SET emp_name='emp guru99' <gurusql:param value="${guruid}" /> </gurusql:update> </body> </html>
코드 설명:
Code 18 라인 : 여기서는 guruid 변수를 2로 설정합니다. 이는 레코드를 업데이트하려는 ID입니다.
Code 19-22행: 여기서는 18번 항목에서 설정된 guru_test 테이블의 레코드를 업데이트하기 위해 업데이트 쿼리를 사용합니다. 여기서 emp guru2는 emp guru99로 대체됩니다.
출력:
위 코드를 실행하면 emp_id가 2인 레코드가 99로 변경됩니다. 따라서 출력 결과는 emp "guru2" 대신 emp "guru99"로 표시됩니다.


