Tìm hiểu về CRUD Hibernate với JSP, Servlet (Phần 1)

14:24 24/07/2023

Hibernate là một khung công tác Java triển khai mẫu thiết kế ORM (ánh xạ quan hệ đối tượng). Nó được sử dụng để ánh xạ các đối tượng java vào cơ sở dữ liệu quan hệ (relationship) và sử dụng nội bộ JDBC (kết nối cơ sở dữ liệu Java), JTA (API giao dịch Java) và JNDI (giao diện thư mục và đặt tên Java).

Hibernate là gì?

Hibernate giúp cho các đối tượng java tồn tại trong cơ sở dữ liệu mà không mất trạng thái của chúng, do đó nó được đặt tên là Hibernate. Hibernate có thể được sử dụng để thực hiện tất cả các hoạt động Crud mà không cần phải viết các truy vấn SQL. Crud đề cập đến các hoạt động cơ sở dữ liệu.

JSP là gì?

Java Server Pages (JSP) là một công nghệ cho phép các nhà phát triển tạo các trang web động bằng cách sử dụng kết hợp mã HTML, XML và Java. Các trang JSP được thực thi trên máy chủ web và kết quả đầu ra được gửi đến trình duyệt web của máy khách.

JSP cung cấp một cách để dễ dàng truy cập mã Java và các đối tượng từ bên trong một trang web, giúp đơn giản hóa việc tạo các trang web động. Các trang JSP thường được sử dụng cùng với các servlet Java xử lý xử lý dữ liệu và các yêu cầu của máy khách. JSP là một phần của nền tảng Java EE và được hầu hết các máy chủ web và bộ chứa servlet hỗ trợ.

JSP có gì?

Cấu trúc thư mục

Đầu tiên là cấu trúc thư mục như hình dưới đây:

Thiết lập dự án

Bạn cần bao gồm các phụ thuộc sau trong tập lệnh pom.xml

<dependencies>

        <dependency>

            <groupId>jakarta.servlet</groupId>

            <artifactId>jakarta.servlet-api</artifactId>

            <version>5.0.0</version>

            <scope>provided</scope>

        </dependency>

        <dependency>

            <groupId>org.junit.jupiter</groupId>

            <artifactId>junit-jupiter-api</artifactId>

            <version>${junit.version}</version>

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>org.junit.jupiter</groupId>

            <artifactId>junit-jupiter-engine</artifactId>

            <version>${junit.version}</version>

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>com.microsoft.sqlserver</groupId>

            <artifactId>mssql-jdbc</artifactId>

            <version>9.4.1.jre16</version>

        </dependency>

        <dependency>

            <groupId>org.hibernate</groupId>

            <artifactId>hibernate-search-orm</artifactId>

            <version>5.8.2.Final</version>

        </dependency>

        <dependency>

            <groupId>jakarta.persistence</groupId>

            <artifactId>jakarta.persistence-api</artifactId>

            <version>3.1.0</version>

        </dependency>

        <dependency>

            <groupId>jakarta.xml.bind</groupId>

            <artifactId>jakarta.xml.bind-api</artifactId>

            <version>2.3.2</version>

        </dependency>

        <!– //mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl –>

        <dependency>

            <groupId>org.apache.taglibs</groupId>

            <artifactId>taglibs-standard-impl</artifactId>

            <version>1.2.5</version>

            <scope>runtime</scope>

        </dependency>

        <!– //mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-spec –>

        <dependency>

            <groupId>org.apache.taglibs</groupId>

            <artifactId>taglibs-standard-spec</artifactId>

            <version>1.2.5</version>

        </dependency>

        <dependency>

            <groupId>jakarta.servlet.jsp.jstl</groupId>

            <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>

            <version>3.0.0</version>

        </dependency>

        <dependency>

            <groupId>org.glassfish.web</groupId>

            <artifactId>jakarta.servlet.jsp.jstl</artifactId>

            <version>2.0.0</version>

        </dependency>

    </dependencies>

Tạo các lớp thực thể

SanPham.java

@Table(name=”san_pham”)

@Entity

public class SanPham {

    

    @Id

    @Column(name = “id”)

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    private int id;

    

    @Column(name = “ten”)

    private String ten;

    

    @Column(name = “gia”)

    private float gia;

    public SanPham(int id, String ten, float gia) {

        this.id = id;

        this.ten = ten;

        this.gia = gia;

    }

    public SanPham() {

    }

    public int getId() {

        return id;

    }

    public void setId(int id) {

        this.id = id;

    }

    public String getTen() {

        return ten;

    }

    public void setTen(String ten) {

        this.ten = ten;

    }

    public float getGia() {

        return gia;

    }

    public void setGia(float gia) {

        this.gia = gia;

    }

    

    

}

Chú thích

@Entity xác định lớp hiện tại là một entity.
@Table xác định tên bảng ánh xạ sang.
@Id xác định thuộc tính hiện tại là ID trong bảng CSDL.
@GeneratedValue xác định kiểu sinh khóa chính tự động, ở đây là IDENTITY.
@Column xác định thuộc tính hiện tại là một cột trong CSDL.

Tạo database trong mysql

create database demohibernate

Bộ môn Ứng dụng phần mềm
Trường Cao đẳng FPT Mạng cá cược bóng đá cơ sở Hà Nội

Cùng chuyên mục

Đăng Kí học Fpoly 2023

Bình Luận