Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT

Hiểu Hibernate

Cấu tình tích hợp Hibernate

Ánh xạ thực thể

Lập trình Hibernate

Truy vấn

Thao tác

Hiểu thêm ngôn ngữ HQL

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT trang 1

Trang 1

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT trang 2

Trang 2

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT trang 3

Trang 3

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT trang 4

Trang 4

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT trang 5

Trang 5

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT trang 6

Trang 6

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT trang 7

Trang 7

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT trang 8

Trang 8

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT trang 9

Trang 9

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 50 trang Danh Thịnh 09/01/2024 1080
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT

Bài giảng Lập trình Java 5 - Bài 6: Tích hợp hibernate - Trường Đại học FPT
LẬP TRÌNH JAVA 5
BÀI 6: TÍCH HỢP HIBERNATE
MỤC TIÊU
Hiểu Hibernate
Cấu tình tích hợp Hibernate
Ánh xạ thực thể
Lập trình Hibernate
Truy vấn
Thao tác
Hiểu thêm ngôn ngữ HQL
GIỚI THIỆU HIBERNATE
Hibernate là framework hỗ trợ lập trình với CSDL 
trong các ứng dụng Java được ưa chuộng nhất
hiện nay.
Hibernate đóng vai trò là tầng trung gian giữa
các đối tượng và CSDL để điều khiển các công
việc quản lý lưu trữ trạng thái của các đối tượng
đó dựa trên cơ sở ánh xạ.
GIỚI THIỆU HIBERNATE
Hibernate ánh xạ các lớp thực thể vào các bảng
của CSDL quan hệ thông qua XML hoặc
annotation.
Hibernate trong suốt với ngôn ngữ SQL, nó sử
dụng HQL để truy vấn đối tượng.
Truy vấn các thực thể kết hợp một cách dễ dàng 
thông qua mối quan hệ giữa các thực thể.
Hibernate không những ổn định, tin cậy mà còn
giúp giảm giảm thiểu công việc của người lập 
trình CSDL.
HỖ TRỢ CSDL
Hibernate hỗ trợ hầu hết các CSDL phổ thông
nhất hiện nay
HSQL Database Engine
DB2/NT
MySQL
PostgreSQL
FrontBase
Oracle
Microsoft SQL Server Database
Sybase SQL Server
Informix Dynamic Server
CÁC THÀNH PHẦN HIBERNATE
Ứng dụng Java 
chỉ làm việc với
các đối tượng
Hibernate có
trách nhiệm
chuyển đối các
đối tương vào
các CSDL và
ngược lại
CÁC THÀNH PHẦN HIBERNATE
Configuration: được sử dụng để quản lý thông
tin cấu hình kết nối đến CSDL và ánh xạ thực thể
vào CSDL.
SessionFactory: cho phép sản sinh ra nhiều
session khác nhau từ thông tin cấu hình.
Session: là một phiên làm việc được tạo từ
SessionFactory
Transaction: sử dụng để điều khiển các giao dịch
làm thay đổi dữ liệu
Query: sử dụng để thực hiện truy vấn đối tượng
Criteria: sử dụng để xây dựng câu lệnh truy vấn
bằng lập trình thay cho câu lệnh HQL hay SQL.
THƯ VIỆN
Trong số các thư viện này
thì sqljdbc4.jar là JDBC 
driver làm việc với SQL 
Server.
Nếu bạn muốn làm việc
với một CSDL cụ thể nào
đó (Oracle, MySQL, 
DB2...) thì phải bổ sung 
JDBC driver tương ứng
với CSDL đó vào ứng
dụng của bạn.
CẤU HÌNH TÍCH HỢP HIBERNATE
Để tích hợp Hibernate vào Spring bạn cần cấu hình
3 bean
 org.springframework.jdbc.datasource.DriverManagerDataSource
Kết nối đến CSDL
 org.springframework.orm.hibernate4.LocalSessionFactoryBean
Tạo session factory từ kết nối CSDL
 org.springframework.orm.hibernate4.HibernateTransactionManager
Quản lý transaction
CẤU HÌNH DATASOURCE
DataSource khai báo các thông số kết nối đến CSDL 
sẽ được sử dụng bởi SessionFactory
Các thông số kết nối CSDL
 JDBC Driver trong môn học này sử dụng SQL Server
Server nơi cài đặt SQL Server
Username và password đăng nhập vào CSDL thông qua 
TCP/IP.
Chú ý: phải kích hoạt kết nối TCP/IP cho CSDL SQL 
Server
CẤU HÌNH SESSIONFACTORY
SessionFactory sẽ được tiêm vào Controller khi làm
việc với Hibernate
Phải tiêm data source đã khai báo trước đó vào session 
factory thông qua XML
Chỉ ra package nơi chứa các entity class ánh xạ vào các
bảng trong CSDL
CẤU HÌNH TRANSACTION
TransactionManager được Spring nạp vào để
quản lý transaction tự động.
Spring sẽ tự tạo một session và commit hoặc
rollback tự động để tăng hiệu suất trong việc xử
lý thao tác CSDL
 sẽ cho phép bạn sử dụng
transaction thông qua việc khai báo
@Transaction
DEMO
Chạy Java5.sql tạo CSDL mẫu
Giải thích file cấu hình tích hợp hibernate
ÁNH XẠ THỰC THỂ
Ánh xạ là sự mô tả việc kết hợp giữa 
Lớp Entity và bảng
Các trường và các cột trong bảng
Thực thể kết với Relationship
Hibernate chấp nhận 2 phương pháp ánh xạ
Sử dụng XML
Sử dụng Annotation. Trong môn học này sử dụng
Annotation
CSDL MẪU
Tài khoản người
sử dụng
Thông tin sinh
viên
Thông tin 
chuyên ngành
MÔ HÌNH THỰC THỂ
User
-id: String
-fullname: String
-password: String
-photo: String
-email: String
+getters
+setters
Major
-id: String
-name: String
-students: Collection
+getters
+setters
Student
-id:Integer
-fullname: String
-gender: Boolean
-birthday: Date
-mark: Double
-major: Major
+getters
+setters
1 *
Nhiều thực thể
Student kết hợp với
một thực thể Major
Một thực thể Student 
kết hợp với 1 thực thể
Major
XÂY DỰNG LỚP THỰC THỂ USER
@Entity đánh dấu lớp thực thể
@Table ánh xạ thực thể với bảng
@Column ánh xạ trường với cột
@Id đánh dấu trường ánh xạ với
cột khóa chính
QUI ƯỚC ÁNH XẠ
Có thể bỏ @Table nếu tên
lớp thực thể và tên bảng
giống nhau
Có thể bỏ @Column nếu tên
trường và tên cột giống nhau
Nếu muốn một trường
không ánh xạ vào một cột
nào cả hãy sử dụng modifier 
transient
Tất cả các trường phải có
getter/setter.
XÂY DỰNG THỰC THỂ STUDENT
Trường id ánh xạ
với cột tự tăng
Dữ liệu kiểu
thời gian
Thay khóa ngoại
bằng thực thể
kết hợp (N-1)
Chú ý sử dụng kiểu dữ liệu hợp lý
CÁC ANNOTATION ÁNH XẠ
ÁNH XẠ THỰC THỂ KẾT HỢP
1-N: một ngành có nhiều sinh viên
Sử dụng @OneToMany
N-1: nhiều sinh viên thuộc một
ngành
Sử dụng @ManyToOne và
@JoinColumn
ÁNH XẠ THỰC THỂ KẾT HỢP 1-N
@OneToMany(mappedBy, fetch)
mappedBy chỉ ra tên trường thực thể kết hợp
fetch chế độ nạp kèm thực thể kết hợp khi thực thể
chính được nạp vào bộ nhớ.
FetchType.LAZY: không nạp kèm thực thể kết hợp
FetchType.EAGER: nạp kèm thực thể kết hợp
DEMO
Giải thích các entity class:
User, Major và Student
LẬP TRÌNH JAVA 5
PHẦN 2
LẬP TRÌNH HIBERNATE
Trước khi lập trình hibernate bạn phải tiêm
SessionFactory vào @Controller bằng cách sử
dụng @Autowired
Trong môi trường Spring bạn có thể sử dụng
session được tạo sẵn
(factory.getCurrentSession()) hoặc mở một
session mới (factory.openSession())
Nếu sử dụng session được mở sẵn thì Spring tự
động commit và rollback, tuy nhiên bạn phải
khai báo thêm với @Transactional
Đối với session tạo mới thì bạn phải commit, 
rollback và đóng lại khi không cần nữa.
MÔ HÌNH LẬP TRÌNH HIBERNATE
Tiêm SessionFactory vào trước
khi lập trình Hibernate
Session mới nên sử dụng
trong thao tác thực thể (save, 
update, delete)
Session được mở sẵn nên
được s

File đính kèm:

  • pdfbai_giang_lap_trinh_java_5_bai_6_tich_hop_hibernate_truong_d.pdf