JSP 데이터베이스 연결

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

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

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

표 만들기

In MYSQL 데이터베이스, 우리는 모든 MYSQL 클라이언트로 데이터베이스에 테이블을 만들 수 있습니다. 여기서는 PHPMyadminclient를 사용하고 있으며, 아래 스크린샷을 사용하여 새 테이블을 만드는 "new" 옵션이 있습니다.

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

여기서는 테이블 이름을 guru_test로 제공해야 하며 emp_id와 emp_name이라는 두 개의 필드를 생성합니다.

Emp_idis는 데이터 유형을 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>

MYSQL 프롬프트에서 다음을 실행하여 GuruTest라는 이름의 데이터베이스에 guru_test 테이블을 만듭니다.

Mysql> use GuruTest;
MySql> create table guru_test(
Emp_idint NOT NULL,
Emp_namevarchar(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>

코드 설명:

코드 라인 1: 여기서는 io, uti 및 SQL 자바의 라이브러리.

코드 라인 3: 여기서는 JSTL의 핵심 라이브러리를 가져오고 출력을 얻는 데 도움이 되는 gurucore라는 접두사를 제공합니다.

코드 라인 4: 여기서는 jstl의 SQL 라이브러리를 가져와서 접두사를 gurusql로 지정하여 SQL 작업을 수행하는 데 도움을 줍니다.

코드 라인 15-17: 여기서는 gurusql을 사용하여 변수 이름을 "guru"로, 드라이버를 JDBC 드라이버로 지정하여 데이터 소스를 연결합니다. 또한 "gururoot" 및 "guru"를 사용하여 사용자 이름과 비밀번호를 추가합니다.

코드 라인 19-21: 여기서는 선택 쿼리의 SQL 쿼리를 사용하고 있습니다.

코드 라인 31-32: 쿼리 결과에서 가져온 emp id 및 emp name에 대한 출력을 인쇄하고 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>

코드 설명:

코드 라인 19-20: 여기서 GuruTestdatabase의 테이블 guru_test에 레코드를 삽입합니다. 삽입된 레코드는 empID – 3과 empname – emp emp3입니다. 이 레코드는 테이블에 삽입됩니다. 코드를 실행하면 레코드가 값 3과 emp emp3을 갖는 guru_test로 테이블에 삽입됩니다.

참고 : 여기서는 테이블에 레코드를 삽입하기만 하므로 출력을 표시하지 않습니다. select query as 'select * from guru_test'를 사용하여 레코드를 가져올 수 있습니다. 레코드가 삽입된 경우 3과 emp3 값을 가져옵니다. 레코드가 삽입되지 않은 경우 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>

코드 설명:

코드 라인 18: 값이 3인 변수 guruid를 설정하고 있으며 데이터베이스에서 삭제해야 합니다. 이는 항상 테이블의 기본 키입니다. 이 경우 기본 키는 emp_id입니다.

코드 라인 19-22: 여기서 우리는 where 절에 매개변수를 설정하는 삭제 쿼리를 사용하고 있습니다. 여기서 매개변수는 코드 라인 18에 설정된 guruid입니다. 해당 레코드가 삭제됩니다.

출력:

위 코드를 실행하면 emp_id가 3인 레코드가 삭제됩니다.

참고 : 이 예에서 우리는 테이블에서 레코드를 삭제하고 있기 때문에 출력을 보여줄 수 없습니다. 해당 레코드가 삭제되었는지 확인하려면 select 쿼리 "select * from guru_test"를 사용해야 합니다. 이 경우 emp 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>
	

코드 설명:

코드 라인 18: 여기서는 guruid 변수를 2로 설정합니다. 이는 레코드를 업데이트하려는 ID입니다.

코드 라인 19-22: 여기서는 업데이트 쿼리를 사용하여 레코드의 guru_test 테이블에 있는 레코드를 업데이트합니다. 이는 18번 지점에서 설정됩니다. 여기서 emp guru2는 emp guru99로 대체됩니다.

출력:

위 코드를 실행하면 emp_id가 2인 레코드가 99로 변경됩니다. 따라서 이제 출력은 emp "guru99" 대신 emp "guru2"로 표시됩니다.

요약

이 튜토리얼에서는 JSP를 데이터베이스에 연결하고 데이터베이스 액세스하는 방법을 배웠습니다. 또한 데이터베이스의 테이블에서 수행되는 다양한 작업(예: create, delete, update 등)에 대해서도 배웠습니다.