Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package basic.Quan;
- /*Câu 1. Class MainApp chứa trường maxNum:int xác định kích thước lớn nhất của danh sách tài
- liệu có thể quản lý, trường bookNum:int lưu số tài liệu hiện có trong danh sách hiện tại, trường
- bookList là Array, Vector, HashTable, ArrayList kiểu Book để chứa danh sách tài liệu và các
- phương thức sau:
- - khởi tạo
- - initBooks(int n) cho phép tạo danh sách bookList có n bản ghi
- - addBook() cho phép tạo một đối tượng của lớp Book và bổ sung vào bookList
- - display() cho phép hiển thị danh sách trong bookList, mỗi bản ghi trên một hàng
- - checkout() cho phép mượn tài liệu theo ISBN và returnBook() cho phép trả tài liệu đã mượn
- theo ISBN (sử dụng trường copyNum: checkout thì copyNum--; returnBook thì copyNum++)
- - searchBook() cho phép tìm kiếm theo title của tài liệu
- Câu 2. Tạo CSDL bookdb chứa bảng tabbooks chứa các trường: isbn(12), title(50), authors(100)
- có kiểu character varying; trường copynum có kiểu integer và xây dựng thêm một trong hai
- phương thức sau vào class MainApp:
- - exportToDB() cho phép lưu nội dung trường bookList vào bảng tabbooks
- - importFromDB() cho phép đọc các bản ghi trong bảng tabbooks vào trường bookList
- Viết phương thức main trong lớp MainApp và gọi các phương thức của lớp để chạy chương
- trình.
- */
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.Hashtable;
- import java.util.Scanner;
- /*Class Book mô tả một tài liệu chứa các trường:
- * - ISBN, title, authors:String, copyNum:int (lưu số lượng bản copy hiện có trong thư viện), và các phương thức khởi tạo hợp lý,
- * readData() cho nhập dữ liệu từ bàn phím, các phương thức setter và getter cần thiết, toString(), display().
- * */
- class Book {
- private String ISBN, authors, title;
- protected int copyNum;
- public Scanner sc = new Scanner(System.in);
- public Book() {
- }
- public Book(String TSBN, String authors, String title, int copyNum) {
- this.ISBN = TSBN;
- this.authors = authors;
- this.title = title;
- this.copyNum = copyNum;
- }
- public String getISBN() {
- return ISBN;
- }
- public void setISBN(String iSBN) {
- ISBN = iSBN;
- }
- public String getAuthors() {
- return authors;
- }
- public void setAuthors(String authors) {
- this.authors = authors;
- }
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this.title = title;
- }
- public int getCopyNum() {
- return copyNum;
- }
- public void setCopyNum(int copyNum) {
- this.copyNum = copyNum;
- }
- public void getData() {
- System.out.print("Nhap ISBN: ");
- ISBN = sc.nextLine();
- System.out.print("Nhap authors: ");
- authors = sc.nextLine();
- System.out.print("Nhap title: ");
- title = sc.nextLine();
- System.out.print("Nhap copyNum: ");
- copyNum = Integer.parseInt(sc.nextLine());
- }
- public String toString() {
- return "";
- }
- public void display() {
- System.out.print("| - ISBN: " + ISBN);
- System.out.print("| - authors:" + authors);
- System.out.print("|- tittle: " + title);
- System.out.print("|- copyNum:" + copyNum);
- }
- public void closeSanner() {
- sc.close();
- }
- }
- public class MainAppbyQuan {
- /*
- * trường maxNum:int xác định kích thước lớn nhất của danh sách tài liệu có
- * thể quản lý, trường bookNum:int lưu số tài liệu hiện có trong danh sách
- * hiện tại,
- */
- private int maxNum, bookNum;
- private Hashtable<String, Book> booklist;
- public Connection con;
- public Scanner sc = new Scanner(System.in);
- public MainAppbyQuan() throws ClassNotFoundException, SQLException {
- Class.forName("org.postgresql.Driver");
- con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/bookdb", "postgres", "12345");
- booklist = new Hashtable<String, Book>();
- }
- public MainAppbyQuan(int maxNum, int bookNum) throws ClassNotFoundException, SQLException {
- Class.forName("org.postgresql.Driver");
- con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/bookdb", "postgres", "12345");
- this.maxNum = maxNum;
- this.bookNum = bookNum;
- booklist = new Hashtable<String, Book>();
- }
- // - initBooks(int n) cho phép tạo danh sách bookList có n bản ghi
- public void initBooks() {
- System.out.println("Nhap so ban ghi:");
- maxNum = Integer.parseInt(sc.nextLine());
- for (int i = 0; i < maxNum; i++) {
- System.out.println("Nhap ban ghi thu " + (i + 1) + " :");
- addBook();
- }
- }
- // - addBook() cho phép tạo một đối tượng của lớp Book và bổ sung vào
- // bookList
- public void addBook() {
- Book a = new Book();
- a.getData();
- booklist.put(a.getISBN(), a);
- }
- // - display() cho phép hiển thị danh sách trong bookList, mỗi bản ghi trên
- // một hàng
- public void display() {
- for (Object i : booklist.keySet()) {
- booklist.get(i).display();
- System.out.println();
- }
- }
- /*- checkout() cho phép mượn tài liệu theo ISBN
- * và returnBook() cho phép trả tài liệu đã mượn theo ISBN (sử dụng trường copyNum:
- * checkout thì copyNum--;
- * returnBook thì copyNum++)*/
- public void checkout() {
- System.out.println("Nhap ISBN: ");
- String ISBN = sc.nextLine();
- for (Object i : booklist.keySet()) {
- if (ISBN.equals(booklist.get(i).getISBN())) {
- booklist.get(i).display();
- System.out.println(booklist.get(i).copyNum);
- System.out.println();
- }
- }
- }
- public void returnBook() {
- System.out.println("Nhap ISBN: ");
- String ISBN = sc.nextLine();
- for (Object i : booklist.keySet()) {
- if (ISBN.equals(booklist.get(i).getISBN())) {
- booklist.get(i).copyNum--;
- System.out.println(booklist.get(i).copyNum);
- System.out.println();
- }
- }
- }
- // searchBook() cho phép tìm kiếm theo title của tài liệu
- public void searchBook() {
- System.out.println("Nhap title:");
- String title = sc.nextLine();
- for (Object i : booklist.keySet()) {
- if (title.equals(booklist.get(i).getTitle())) {
- booklist.get(i).display();
- System.out.println();
- }
- }
- }
- // exportToDB() cho phép lưu nội dung trường bookList vào bảng tabbooks
- public void exportToDB() throws SQLException {
- java.sql.Statement stm = con.createStatement();
- for (Object i : booklist.keySet()) {
- String sql = "Insert into tabbooks values('" + booklist.get(i).getISBN() + "','"
- + booklist.get(i).getAuthors() + "','" + booklist.get(i).getTitle() + "',"
- + booklist.get(i).getCopyNum() + ")";
- int sr = stm.executeUpdate(sql);
- }
- }
- // – importFromDB() cho phép đọc các bản ghi trong bảng tabbooks vào trường
- // bookList
- public void importFromDB() throws SQLException {
- Statement stm = con.createStatement();
- String sql = "select*from tabbooks";
- ResultSet rs = stm.executeQuery(sql);
- while(rs.next()){
- Book a = new Book(rs.getString(1), rs.getString(2), rs.getString(3), rs.getInt(4));
- booklist.put(rs.getString(1), a);
- }
- }
- public static void main(String[] args) throws SQLException, ClassNotFoundException {
- MainAppbyQuan dt = new MainAppbyQuan();
- dt.initBooks();
- dt.display();
- // dt.searchBook();
- // dt.checkout();
- // dt.returnBook();
- dt.exportToDB();
- // System.out.println("import thanh cong");
- // dt.importFromDB();
- // dt.display();
- }
- }
Add Comment
Please, Sign In to add comment