Part 1: Xây dựng chức năng thêm mới
-
Tạo form nhập liệu trong layout
-
Trong file MainActivity định nghĩa các hàm tương ứng
public void AddRow(View view){
}
public void UpdateRow(View view){
}
public void DeleteRow(View view){
}
-
Tạo 1 package mới đặt tên là DAO để chứa các file thực hiện thao tác thêm sửa xóa dữ liệu. Trong thư mục DAO sẽ thêm 1 file là TbLopDAO,java
-
Trong lớp TbLopDAO làm các công việc sau:
- Khai báo 1 thuộc tính private là database có kiểu SQLiteDatabase, đây là đối tượng chính dùng để thực hiện thao tác thêm sửa xóa...
- Sử dụng lớp CreateDbSinhVien vừa tạo để tạo 1 thuộc tính thứ 2.
-
- Viết hàm khởi tạo với 1 tham số truyền vào là context sau đó tạo mới đối tượng createDbSinhVien.
- Trong lớp này cũng tạo các hàm open, close để thực hiện đóng mở CSDL. Code của các bước này như sau:
-
Sang hàm onCreate của lớp MainActivity thực hiện tạo các biến ánh xạ các editext và gọi kết nối CSDL
// Khai báo ở ngoài hàm onCreate (là thuộc tính)
EditText ed_ten_lop, ed_nganh;
TbLopDAO tbLopDAO;
// trong hàm onCreate
- Tiến hành overwrite thêm hàm onDestroy để đóng kết nối CSDL:
-
Vì là làm việc với đối tượng TbLop có nhiều thành phần nên chúng ta sẽ tạo 1 lớp là TbLop để gắn các thuộc tính vào cho tập chung dữ liệu
7.1. Tạo 1 gói mới là DTO, trong thư mục DTO tạo file TbLop.java
7.2. Trong class TbLop bạn tạo các thuộc tính có tên trùng với tên trên bảng CSDL.
Sau đó dùng công cụ generate ra các hàm getter và setter bằng cách kích phải chuột lên cửa sổ code chọn Generate... --> chọn getter and setter.
7.3. Trong lớp này cũng tạo luôn các biến public kiểu String để lưu tên các cột trong CSDL, sau này dùng sẽ tiện dụng hơn
-
Quay lại lớp TbLopDAO để viết hàm thêm mới
-
Quay trở lại lớp MainActivity để viết code cho hàm AddRow (Sự kiện bấm nút thêm)
Biến kq ở trên sẽ nhận được là id của bản ghi mới thêm của cột id tự động tăng
-
Chạy thử ứng dụng, mở Device ra copy lấy csdl dùng sqlite browser để xem kết quả.
Video hướng dẫn dựng code
Code nhé: https://drive.google.com/file/d/1Bsa-1Zuh07olnwW1uHzTGiRQCVwqLaJJ/view?usp=sharing