Lập trình Spring Boot: Xây dựng Dự án BookStore bằng Spring JDBC, Thymeleaf Trong bài viết này, Stanford - Dạy kinh nghiệm lập trình sẽ giúp bạn xây dựng dự án quản lý sách sử dụng spring jdbc, thymeleaf trong lập trình Spring Boot bằng công cụ Intellij IDEA. Spring Boot là gì? Spring Boot là một module của Spring Framework, cung cấp tính năng RAD (Rapid Application Development) – Phát triển ứng dụng nhanh. Spring Boot được dùng để tạo các ứng dụng độc lập dựa trên Spring. Spring Boot không yêu cầu cấu hình XML Nó là một chuẩn cho cấu hình thiết kế phần mềm, tăng cao năng suất cho developer. Spring Data JDBC là gì ? Spring Data JDBC là một thành viên mới được thêm vào trong Spring Data. Nó là sự kết hợp các thành phần của Spring Data JPA (Java Persistence API) và Spring JDBC. Spring JDBC cung cấp cho chúng ta một framework để thực thi các câu lệnh SQL. Nó xử lý việc kết nối với cơ sở dữ liệu và giúp chúng ta thực thi các câu lệnh SQL bằng cách sử dụng JdbcTemplate. Nhờ vậy mà nó rất là linh hoạt vì chúng ta hoàn toàn có quyền được kiểm soát việc các câu lệnh SQL được thực thi. Trong bài viết này, Stanford sẽ hướng dẫn các bạn học lập trình java web sử dụng spring data jdbc để làm việc với cơ sở dữ liệu mysql, thymeleaf để tạo giao diện trình bày thông tin trong dự án Spring Boot. Các bạn có thể thực hiện theo từng bước theo các bài viết hướng dẫn dưới đây. Nếu có gì khó khăn hãy liên hệ với Stanford để được hỗ trợ nhé. Thiết kế cơ sở dữ liệu và tạo bảng trong MySQL Trước khi tạo dự án lập trình java web bằng Spring Boot các bạn tạo cơ sở dữ liệu với các bảng gồm các thuộc tính như sau: Tạo dự án Spring Boot trên Intellij IDEA Tiếp theo là bạn cần tạo một dự án lập trình spring boot và sử dụng maven để quản lý thư viện phụ thuộc trên công cụ lập trình Intellij IDEA theo trình tự các bước sau: - Bước 1: Mở Intellij IDEA sau đó nhấn chọn menu File => New => Project. Chọn mục Spring Boot sau đó thực hiện đặt tên cho dự án lập trình web và các thông tin như hình dưới: - Bước 2: Nhấn nút Next để tiếp tục quá trình tạo dự án. Sau đó trên giao diện hiển thị, các bạn học lập trình java web tích chọn các mục sau: Spring Boot DevTools, Spring Web, Thymeleaf, Spring Data JDBC, MySQL Server như hình minh họa sau đây: Chú ý: Bạn cần thực hiện tích chọn các mục đầy đủ để đảm bảo không bị lỗi do thiếu thư viện khi chạy dự án Spring Boot. Bạn có thể xem lại các thư viện quan trọng trong tập tin pom.xml trong dự án này như sau: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> Sau khi tạo dự án thành công, các bạn thực hiện tạo các package cho dự án theo cấu trúc như tham khảo ở dưới: Xây dựng các lớp xử lý dữ liệu với MySQL bằng Spring Data JDBC Trước khi vào thực hiện tạo các lớp để xử lý dữ liệu với MySQL, đầu tiên bạn cần khai báo thông tin kết nối đến cơ sở dữ liệu làm việc trong tập tin application.properties như sau: # =============================== # DATABASE # =============================== spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/je082401dev?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=Stanford logging.level.root=INFO server.port=8087 Chú ý: Các thông tin kết nối đến cơ sở dữ liệu MySQL bạn cần thay thành các thông tin trên máy cài mysql mà các bạn cần làm việc Tiếp theo là chúng ta sẽ cần tạo các lớp bao gồm các thuộc tính tương ứng với bảng trong cơ sở dữ liệu MySQL như sau: - Lớp Sach: Mô tả các thuộc tính về sách tương ứng với các cột trong bảng Sach của MySQL package vn.com.stanford.stanford_workingjdbcspringboot.entities; import java.util.Date; public class Sach { private String maSach; private String tenSach; private String moTa; private String anhSach; private String tacGia; private double giaSach; private Date ngayTao; private Date ngayCapNhat; private Date ngayDuyet; private boolean daDuyet; private String maChuDe; public String getMaSach() { return maSach; } public void setMaSach(String maSach) { this.maSach = maSach; } public String getTenSach() { return tenSach; } public void setTenSach(String tenSach) { this.tenSach = tenSach; } public String getMoTa() { return moTa; } public void setMoTa(String moTa) { this.moTa = moTa; } public String getAnhSach() { return anhSach; } public void setAnhSach(String anhSach) { this.anhSach = anhSach; } public String getTacGia() { return tacGia; } public void setTacGia(String tacGia) { this.tacGia = tacGia; } public double getGiaSach() { return giaSach; } public void setGiaSach(double giaSach) { this.giaSach = giaSach; } public Date getNgayTao() { return ngayTao; } public void setNgayTao(Date ngayTao) { this.ngayTao = ngayTao; } public Date getNgayCapNhat() { return ngayCapNhat; } public void setNgayCapNhat(Date ngayCapNhat) { this.ngayCapNhat = ngayCapNhat; } public Date getNgayDuyet() { return ngayDuyet; } public void setNgayDuyet(Date ngayDuyet) { this.ngayDuyet = ngayDuyet; } public boolean isDaDuyet() { return daDuyet; } public void setDaDuyet(boolean daDuyet) { this.daDuyet = daDuyet; } public String getMaChuDe() { return maChuDe; } public void setMaChuDe(String maChuDe) { this.maChuDe = maChuDe; } } - Lớp ChuDe: Mô tả các thuộc tính về chủ đề tương ứng với các cột trong bảng ChuDe của MySQL package vn.com.stanford.stanford_workingjdbcspringboot.entities; public class ChuDe { private String maChuDe; private String tenChuDe; public String getTenChuDe() { return tenChuDe; } public void setTenChuDe(String tenChuDe) { this.tenChuDe = tenChuDe; } public String getMaChuDe() { return maChuDe; } public void setMaChuDe(String maChuDe) { this.maChuDe = maChuDe; } } Xây dưng các lớp để ánh xạ lấy dữ liệu cho các thuộc tính trong các lớp từ các cột dữ liệu trong bảng của cơ sở dữ liệu MySQL như sau: - Lớp ChuDeMapper: Lớp để lấy thông tin cho các thuộc tính đối tượng của lớp ChuDe package vn.com.stanford.stanford_workingjdbcspringboot.entities; import org.springframework.jdbc.core.RowMapper; import java.sql.ResultSet; import java.sql.SQLException; public class ChuDeMapper implements RowMapper<ChuDe> { @Override public ChuDe mapRow(ResultSet rs, int rowNum) throws SQLException { ChuDe chuDe = new ChuDe(); chuDe.setMaChuDe(rs.getString("MaChuDe")); chuDe.setTenChuDe(rs.getString("TenChuDe")); return chuDe; } } - Lớp SachMapper: Lớp để lấy thông tin cho các thuộc tính đối tượng của lớp ChuDe package vn.com.stanford.stanford_workingjdbcspringboot.entities; import org.springframework.jdbc.core.RowMapper; import java.sql.ResultSet; import java.sql.SQLException; public class SachMapper implements RowMapper<Sach> { @Override public Sach mapRow(ResultSet rs, int rowNum) throws SQLException { Sach objSach = new Sach(); objSach.setMaSach(rs.getString("MaSach")); objSach.setTenSach(rs.getString("TenSach")); objSach.setMoTa(rs.getString("MoTa")); objSach.setTacGia(rs.getString("TacGia")); objSach.setAnhSach(rs.getString("AnhSach")); objSach.setGiaSach(rs.getInt("GiaSach")); objSach.setNgayTao(rs.getDate("NgayTao")); objSach.setNgayCapNhat(rs.getDate("NgayCapNhat")); objSach.setMaChuDe(rs.getString("MaChuDe")); return objSach; } } Như vậy ở bài này Stanford - Dạy kinh nghiệm lập trình đã hướng dẫn chi tiết việc tạo cơ sở dữ liệu, tạo dự án lập trình spring boot và xây dựng các lớp tương ứng với các bảng, lớp mapper để lấy dữ liệu trong MySQL bằng Spring Data JDBC. Ở bài tiếp theo Stanford sẽ tiếp tục hướng dẫn các bạn tạo lớp xử lý dữ liệu trong package model của dự án Spring Boot này. Phần 2: Xây dựng Dự án BookStore bằng Spring JDBC, Thymeleaf - P2 Phần 3: Xây dựng Dự án BookStore bằng Spring JDBC, Thymeleaf - P3 Bên cạnh đó nếu bạn đang muốn được đào tạo bài bản từ cơ bản đến nâng cao có thể tham gia ngay khóa học lập trình java fullstack cùng chuyên gia giàu kinh nghiệm Stanford tại đây: http://bit.ly/2SLPYFF và nhận ưu đãi hấp dẫn của Stanford trong thời gian này. Bạn có thể gọi theo hotline: 0963 723 236 - 0866 586 366 để được gọi lại tư vấn trực tiếp nhé. ============================= ☎ STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ Hotline: 0963 723 236 - 0866 586 366 Website: https://stanford.com.vn Facebook: http://bit.ly/2FN0TYb Youtube: http://bit.ly/2TkKT7I Tags: spring boot, spring data jdbc, học spring boot