JSP 데이터베이스 연결

⚡ 스마트 요약

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

  • 🗄️ 목적 : 데이터베이스는 JSP가 생성, 읽기 및 관리할 수 있는 기가바이트 규모의 데이터를 저장합니다.
  • 🧱 테이블 생성: emp_id와 emp_name을 사용하여 guru_test 테이블을 생성합니다. MySQL 고객 또는 요청.
  • 🔌 연결 : sql:setDataSource 태그는 JDBC 드라이버를 제공합니다. URL사용자 이름과 비밀번호.
  • 🔁 크루드 Operations : 선택, 삽입, 업데이트 및 삭제는 JSTL SQL 태그를 통해 실행됩니다.
  • 🔑 매개 변수 : 특정 레코드를 대상으로 하려면 `sql:param`과 `emp_id`와 같은 기본 키를 사용하십시오.

JSP 데이터베이스 연결

JSP에서 데이터베이스에 연결하기

데이터베이스는 기가바이트 단위의 대용량 데이터를 비롯한 다양한 유형의 데이터를 저장하는 데 사용됩니다. JSP는 이러한 데이터베이스에 연결하여 레코드를 생성하고 관리할 수 있습니다.

본 튜토리얼에서는 데이터베이스에 테이블을 생성하는 방법과 JSP를 통해 이러한 테이블에 레코드를 생성하는 방법에 대해 알아봅니다.

표 만들기

In MYSQL 데이터베이스우리는 어떤 MySQL 클라이언트를 사용해서든 데이터베이스에 테이블을 생성할 수 있습니다. 여기서는 PHPMyAdmin 클라이언트를 사용하고 있으며, 아래 스크린샷과 같이 "새로 만들기" 옵션을 통해 새 테이블을 생성할 수 있습니다.

JSP 데이터베이스에 테이블 생성

이 경우 테이블 이름은 guru_test로 지정해야 하며, emp_id와 emp_name이라는 두 개의 필드를 생성해야 합니다.

  • Emp_id의 데이터 형식은 int입니다.
  • Emp_name의 데이터 형식은 varchar입니다.

JSP 데이터베이스에 테이블 생성

또 다른 방법은 명령 프롬프트를 사용하고 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"로 표시됩니다.

자주 묻는 질문

예. AI 비서는 JSP를 연결하기 위한 JSTL SQL 태그 또는 JDBC 코드를 생성할 수 있습니다. MySQL쿼리를 작성하고 결과 행을 매핑합니다. 드라이버는 여전히 검증해야 합니다. URL실행하기 전에 자격 증명을 입력하세요.

예. AI 도구는 문자열이 연결된 쿼리를 식별하고 매개변수화된 쿼리 또는 준비된 문을 제안할 수 있습니다. 이는 SQL 인젝션 위험을 줄여주지만, 모든 데이터베이스 입력에 대한 수동 보안 검토는 여전히 권장됩니다.

JDBC(Java 데이터베이스 연결은 다음과 같은 기능을 제공하는 API입니다. Java JSP 애플리케이션은 데이터베이스에 연결합니다. 이때 com.mysql.jdbc.Driver와 같은 드라이버를 로드하고 연결을 통해 SQL 문을 실행합니다.

아니요. JSTL SQL 태그는 학습 및 프로토타입에 적합합니다. 실제 운영 환경에서는 데이터베이스 로직을 서블릿, DAO 또는 프레임워크에서 구현해야 합니다.ping JSP는 직접적인 질의보다는 표현 방식에 중점을 두었습니다.

이 게시물을 요약하면 다음과 같습니다.