Breaking

31 tháng 5, 2021

Kết nối Database trong Jakarta Servlet dùng Connection Pooling

 


Bước 1. Cấu hình các thư viện cần thiết trong file "porm.xml".  (tất cả code dưới đây copy được nhé).

a. Thư viện MySql:

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.24</version>
</dependency>


b. Thư viện JSTL:

<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<version>2.0.0</version>
</dependency>


Chú ý: những đoạn mã trên nằm trong thẻ <dependencies>, như sau:

<dependencies>
<!-- Copy vào đây nè, ở trong thẻ 'dependencies' -->
</dependencies>


Sau khi chỉnh sửa file "porm.xml", nút  sẽ xuất hiện ở góc trên cùng bên phải. Ấn vào nút này để intellij-idea tải lại các thư viện cần thiết theo đúng theo cấu hình vừa sửa trong file "porm.xml".



Bước 2. Tạo cơ sở dữ liệu mẫu:

# 00. Tạo Tài khoản truy cập cơ sở dữ liệu (tùy chọn, nếu cần):
GRANT ALL PRIVILEGES ON *.* TO javauser@localhost
IDENTIFIED BY 'javadude' WITH GRANT OPTION;

# 01. Tạo Cơ sở dữ liệu:
create database DatabaseName_Test;
use DatabaseName_Test;

# 02. Tạo Bảng:
create table TableName_Test (
id int not null auto_increment primary key,
foo varchar(25),
bar int);

# 03. Nhập dữ liệu mẫu vào bảng vừa tạo:
insert into TableName_Test value (null, 'hello', 12345);
insert into TableName_Test value (null, 'welcome', 56789);



Bước 3. Tạo file "webapp/META-INF/context.xml" (chưa có thư mục 'META-INF' thì tạo nhé)

<Context>
<Resource name="jdbc/mysql/DatabaseName_Test"
auth="Container"
type="javax.sql.DataSource"

maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"

username="root"
password=""
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/DatabaseName_Test"/>

<!-- maxTotal(int): số lượng kết nối tối đa tại 1 thời điểm. -->
<!-- maxIdle(int): số lượng kết nối nhàn rỗi được duy trì tối đa. -->
<!-- maxWaitMillis: số mili giây tối đa đợi kết nối,         sau số giây này thì coi như ko kết nối được, để hệ thống chuyển sang việc khác. -->

<!-- CHÚ Ý: Sửa lại username, password và tên cơ sở dữ liệu trong url cho đúng -->
</Context>



Bước 4. Cấu hình file "webapp/WEB-INF/web.xml"

(Không cần làm bước này code vẫn chạy)

<resource-ref>
<description>Database Connection Test</description> <!-- Mô tả này là tùy chọn -->
<res-ref-name>jdbc/mysql/DatabaseName_Test</res-ref-name> <!-- Tên Resource đã khai báo
trong file "META-INF/context.xml" -->
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>



Bước 5. Tạo file "webapp/test.jsp", để kiểm tra kết nối và hiển thị kết quả.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<sql:query var="resultSet" dataSource="jdbc/mysql/DatabaseName_Test">
select * from TableName_Test
</sql:query>

<html>
<head>
<title>DB Test</title>
</head>
<body>

    <h2>Results</h2>

    <c:forEach var="row" items="${resultSet.rows}">
    Foo: ${row.foo} <br>
     Bar: ${row.bar} <br>         <br>
    </c:forEach>

</body>
</html>



Kết quả nè:



💜 Cảm ơn bạn đã đọc bài, mọi thắc mắc hoặc góp ý hãy để lại bình luận cho mình nhé 💜

Chúc các bạn thành công!


Nguồn tham khảo: 



Cùng chủ đề, đọc tiếp:


1 nhận xét:

  1. 💜 Cảm ơn bạn đã đọc bài, mọi thắc mắc hoặc góp ý hãy để lại bình luận cho mình nhé 💜

    Chúc các bạn thành công!

    Trả lờiXóa