Kết hợp MyBatis vào dự án Spring Boot để thực hiện chức năng quản lý người dùng cơ bản (thêm, xóa, sửa, tra cứu)
Dự án Hello World:
https://www.cnblogs.com/clamp7724/p/12579171.html
Lưu ý rằng MySQL của tôi có phiên bản 10.0 trở lên, nếu phiên bản cũ có thể gây lỗi, đối với các phiên bản cũ hơn bạn có thể tham khảo video này:
https://www.bilibili.com/video/BV1yE411M7MF?p=3
Điểm khác biệt chính: cấu hình trong pom.xml và application.yml.
- Cấu hình đường dẫn tên dự án (giúp quản lý dễ dàng khi có nhiều dự án)
Khi khởi động, tất cả các trang sẽ được truy cập qua http://localhost:8080/ems13 thay vì http://localhost:8080
- Tạo cơ sở dữ liệu (dùng công cụ SQLyog, sử dụng MySQL) (nếu chưa biết MySQL thì nên học trước nhé = = Trong bối cảnh chính sách Việt Nam chuyển sang sử dụng MySQL thay vì Oracle, phần lớn các doanh nghiệp đều ưu tiên MySQL cho hệ thống dữ liệu quan hệ)
Tạo bảng:
Bảng người dùng: (ví dụ đơn giản không thêm quyền hạn)
CREATE TABLE t_user(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
user_name VARCHAR(40),
real_name VARCHAR(40),
user_password VARCHAR(40)
);
Lưu ý:
Trường id cần kiểu tự tăng unsigned, giúp tăng hiệu suất tìm kiếm
Tên người dùng và mật khẩu không nên đặt là name và password vì đây là từ khóa trong cơ sở dữ liệu, dễ gây lỗi
MySQL trên Windows không phân biệt hoa/thường, nhưng Linux thì phân biệt, nên đặt tất cả trường thành chữ thường để tránh rắc rối.
Bảng nhân viên:
CREATE TABLE t_emp(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
real_name VARCHAR(40),
salary DECIMAL(7,2),
age TINYINT UNSIGNED
)
Lưu ý: Sử dụng DECIMAL để lưu số thập phân, mặc dù giới hạn về kích thước số, nhưng float/double có thể gặp vấn đề về độ chính xác (do biểu diễn nhị phân gây ra các giá trị như .9999999999999).
Sau đó chạy câu lệnh SQL để tạo bảng.
Làm mới để hiển thị hai bảng mới.
- Phần MyBatis
Thêm thư viện: phụ thuộc của Spring Boot tích hợp MyBatis (sẽ tự động lấy phiên bản mới nhất của MyBatis, không nên thêm MyBatis riêng sẽ gây lỗi do phiên bản cũ).
Tạo thư mục: dao chứa các lớp kết nối database, entity chứa các lớp đại diện cho bảng, mapper chứa các câu lệnh SQL.
Chỉnh sửa file cấu hình
Nếu phiên bản MySQL vượt quá 10, bắt buộc phải cấu hình như sau, nhiều hướng dẫn online cũ kỹ, driver-class-name: com.mysql.cj.jdbc.Driver là yêu cầu từ MySQL Connector/J phiên bản 8.0 trở lên, trước đó là com.mysql.jdbc.Driver, đã lỗi thời và báo cảnh báo.
Nếu gặp lỗi với com.mysql.cj.jdbc.Driver, kiểm tra lại phiên bản hoặc thiếu phụ thuộc.
Phiên bản mới nhất của MySQL Connector/J yêu cầu url phải thêm hai tham số Timezone và useSSL.
Chỉnh sửa lớp khởi động, thêm annotation để chỉ định package cần scan.
Tạo interface trong dao, bắt đầu với chức năng lưu người dùng đơn giản để kiểm tra phần MyBatis.
Hoàn thiện lớp User, tên nên trùng với tên cột trong DB, nhớ thêm phương thức get/set và toString.
Viết lớp kiểm thử:
Khởi động lớp kiểm thử:
Kiểm tra kết quả trong database: