Kết nối cơ sở dữ liệu JSP

Kết nối với cơ sở dữ liệu trong JSP

Cơ sở dữ liệu được sử dụng để lưu trữ nhiều loại dữ liệu rất lớn và có dung lượng lưu trữ tính bằng gigabyte. JSP có thể kết nối với các cơ sở dữ liệu đó để tạo và quản lý các bản ghi.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về cách tạo một bảng trong cơ sở dữ liệu và cách tạo các bản ghi trong các bảng này thông qua JSP.

Tạo bảng

In Cơ sở dữ liệu MYSQL, chúng ta có thể tạo một bảng trong cơ sở dữ liệu với bất kỳ máy khách MYSQL nào. Ở đây chúng ta sử dụng PHPMyadminclient, và ở đó chúng ta có tùy chọn “mới” để tạo một bảng mới bằng ảnh chụp màn hình bên dưới.

Tạo bảng trong cơ sở dữ liệu JSP

Trong phần này, chúng tôi phải cung cấp tên bảng là guru_test và chúng tôi sẽ tạo hai trường'emp_id và emp_name.

Emp_idis có kiểu dữ liệu là int

Emp_name có kiểu dữ liệu là varchar

Tạo bảng trong cơ sở dữ liệu JSP

Một tùy chọn khác là sử dụng dấu nhắc lệnh và thay đổi thư mục MYSQL:

C:\>
C:\>cd Program Files\MY SQL\bin
C:\>Program Files\MySql\bin>

Chúng ta có thể đăng nhập vào cơ sở dữ liệu như sau:

C:\Program Files\MYSQL\bin>mysql –u gururoot –p
Enter Password: *******
Mysql>

Tạo bảng guru_test trong cơ sở dữ liệu có tên là GuruTest theo lệnh sau trên dấu nhắc MYSQL:

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)

Đầu tiên các bản ghi được chèn bằng cách sử dụng INSERT truy vấn và sau đó chúng ta có thể sử dụng SELECT truy vấn để kiểm tra xem bảng đã được tạo hay chưa.

Tạo bản ghi

Sau khi tạo bảng, chúng ta cần tạo các bản ghi vào bảng guru_test bằng cách sử dụng truy vấn chèn, được hiển thị bên dưới:

Các bản ghi được nhập ở đây là:

  • 1 và đạo sư emp1
  • 2 và đạo sư 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 OperaCác lệnh: Chèn, Cập nhật, Xóa, Chọn

Sử dụng JSP, chúng ta có thể thực hiện nhiều thao tác vào cơ sở dữ liệu. Chúng ta có thể chèn các bản ghi và cũng có thể xóa các bản ghi không cần thiết. Nếu bất kỳ bản ghi nào cần được chỉnh sửa, thì chúng ta có thể thực hiện bằng cách sử dụng lệnh cập nhật. Thao tác Select sẽ giúp tìm nạp các bản ghi cần thiết.

Chọn

Thao tác Select được sử dụng để chọn các bản ghi từ bảng.

Ví dụ:

Trong ví dụ này, chúng ta sẽ tìm hiểu về thao tác chọn tìm nạp các bản ghi từ bảng guru_test đã được tạo ở phần trên.

<%@ 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>

Giải thích mã:

Dòng mã 1: Ở đây chúng tôi đang nhập io, uti và SQL các thư viện java.

Dòng mã 3: Ở đây chúng tôi đang nhập thư viện cốt lõi của JSTL và đặt tiền tố của nó là gurucore, điều này sẽ giúp lấy đầu ra.

Dòng mã 4: Ở đây chúng tôi đang nhập thư viện SQL của jstl và đặt tiền tố của nó là gurusql để giúp thực hiện các hoạt động SQL.

Dòng mã 15-17: Ở đây bằng cách sử dụng gurusql, chúng tôi đang kết nối nguồn dữ liệu bằng cách đặt tên biến là “guru” và trình điều khiển là trình điều khiển JDBC. Đồng thời thêm tên người dùng và mật khẩu với “gururoot” và “guru”.

Dòng mã 19-21: Ở đây chúng tôi đang sử dụng truy vấn SQL của truy vấn chọn.

Dòng mã 31-32: Chúng tôi đang in kết quả đầu ra cho emp id và emp name, được tìm nạp từ kết quả của truy vấn và sử dụng vòng lặp foreach để in kết quả đầu ra.

Khi bạn thực thi đoạn mã trên, chúng ta sẽ nhận được kết quả như bên dưới;

Đầu ra:

Ở đây cả hai bản ghi sẽ được lấy từ cơ sở dữ liệu

1 bậc thầy emp1

2 bậc thầy emp2

Chèn

Toán tử chèn được sử dụng để chèn bản ghi vào cơ sở dữ liệu.

Ví dụ:

Trong ví dụ này, chúng ta sẽ tìm hiểu về cách chèn các bản ghi vào bảng 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>

Giải thích mã:

Dòng mã 19-20: Ở đây chúng ta chèn các bản ghi vào bảng guru_test của GuruTestdatabase. Các bản ghi được chèn là: empID – 3 và empname – emp emp3. Các bản ghi này sẽ được chèn vào bảng Khi bạn thực thi mã, các bản ghi được chèn vào bảng dưới dạng guru_test, với giá trị 3 và emp emp3.

Lưu ý: Ở đây chúng tôi không hiển thị đầu ra vì chúng tôi chỉ chèn bản ghi vào bảng. Chúng tôi có thể lấy bản ghi bằng cách sử dụng truy vấn select là 'select * from guru_test'. Nếu bản ghi đã được chèn vào thì chúng tôi sẽ lấy giá trị là 3 và emp3. Nếu bản ghi không được chèn vào thì 3 sẽ không được nhìn thấy trong các bản ghi trong bảng.

Xóa bỏ

Đây là thao tác xóa trong đó chúng tôi xóa các bản ghi khỏi bảng guru_test.

Ví dụ:

Ở đây chúng ta sẽ xóa truy vấn xóa bản ghi khỏi bảng guru_test. Bản ghi cần xóa phải được đặt trong biến “guruid” và bản ghi tương ứng sẽ bị xóa khỏi cơ sở dữ liệu.

<%@ 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>

Giải thích mã:

Dòng mã 18: Chúng tôi đang đặt một biến guruid có giá trị là 3, giá trị này phải bị xóa khỏi cơ sở dữ liệu. Đây luôn là khóa chính của bảng. Trong trường hợp này, khóa chính là emp_id.

Dòng mã 19-22: Ở đây chúng ta sử dụng truy vấn xóa để thiết lập tham số trong mệnh đề where. Tham số ở đây là guruid được thiết lập ở dòng mã 18. Bản ghi tương ứng sẽ bị xóa.

Đầu ra:

Khi bạn thực thi đoạn mã trên, bản ghi có emp_id là 3 sẽ bị xóa.

Lưu ý: Trong ví dụ này, chúng ta không thể hiển thị đầu ra vì chúng ta đang xóa bản ghi khỏi bảng. Để kiểm tra xem bản ghi đó có bị xóa hay không, chúng ta cần sử dụng truy vấn select “select * from guru_test”. Trong trường hợp đó, nếu chúng ta nhận được 3 là emp id thì truy vấn delete đã thất bại, nếu không thì bản ghi đã được xóa thành công.

Cập nhật

Bản cập nhật được sử dụng để chỉnh sửa các bản ghi trong bảng.

Ví dụ:

<%@ 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>
	

Giải thích mã:

Dòng mã 18: Ở đây chúng tôi đang đặt một biến guruid là 2. Đây là ID mà chúng tôi muốn cập nhật bản ghi.

Dòng mã 19-22: Ở đây chúng tôi đang sử dụng truy vấn cập nhật để cập nhật bản ghi trong bảng guru_test của bản ghi, được đặt ở điểm 18. Ở đây emp guru2 được thay thế bằng emp guru99

Đầu ra:

Khi bạn thực thi đoạn mã trên, bản ghi có emp_id 2 sẽ được thay đổi thành 99. Vì vậy, bây giờ đầu ra sẽ hiển thị emp”guru99″ thay vì emp “guru2”.

Tổng kết

Trong hướng dẫn này, chúng ta đã tìm hiểu về cách kết nối JSP với cơ sở dữ liệu và truy cập cơ sở dữ liệu. Ngoài ra, chúng ta đã tìm hiểu về các thao tác khác nhau được thực hiện trên bảng trong cơ sở dữ liệu như tạo, xóa, cập nhật, v.v.