Guest User

Main App

a guest
Dec 29th, 2016
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.60 KB | None | 0 0
  1. package basic.Quan;
  2.  
  3. /*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
  4. 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
  5.  
  6. bookList là Array, Vector, HashTable, ArrayList kiểu Book để chứa danh sách tài liệu và các
  7. phương thức sau:
  8. - khởi tạo
  9. - initBooks(int n) cho phép tạo danh sách bookList có n bản ghi
  10. - addBook() cho phép tạo một đối tượng của lớp Book và bổ sung vào bookList
  11. - display() cho phép hiển thị danh sách trong bookList, mỗi bản ghi trên một hàng
  12. - checkout() cho phép mượn tài liệu theo ISBN và returnBook() cho phép trả tài liệu đã mượn
  13. theo ISBN (sử dụng trường copyNum: checkout thì copyNum--; returnBook thì copyNum++)
  14. - searchBook() cho phép tìm kiếm theo title của tài liệu
  15.  
  16. Câu 2. Tạo CSDL bookdb chứa bảng tabbooks chứa các trường: isbn(12), title(50), authors(100)
  17. có kiểu character varying; trường copynum có kiểu integer và xây dựng thêm một trong hai
  18. phương thức sau vào class MainApp:
  19. - exportToDB() cho phép lưu nội dung trường bookList vào bảng tabbooks
  20. - importFromDB() cho phép đọc các bản ghi trong bảng tabbooks vào trường bookList
  21. 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
  22. trình.
  23. */
  24.  
  25. import java.sql.Connection;
  26. import java.sql.DriverManager;
  27. import java.sql.ResultSet;
  28. import java.sql.SQLException;
  29. import java.sql.Statement;
  30. import java.util.Hashtable;
  31. import java.util.Scanner;
  32.  
  33. /*Class Book mô tả một tài liệu chứa các trường:
  34. * - 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ý,
  35. * 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().
  36. * */
  37. class Book {
  38. private String ISBN, authors, title;
  39. protected int copyNum;
  40. public Scanner sc = new Scanner(System.in);
  41.  
  42.  
  43.  
  44. public Book() {
  45. }
  46.  
  47. public Book(String TSBN, String authors, String title, int copyNum) {
  48. this.ISBN = TSBN;
  49. this.authors = authors;
  50. this.title = title;
  51. this.copyNum = copyNum;
  52. }
  53.  
  54. public String getISBN() {
  55. return ISBN;
  56. }
  57.  
  58. public void setISBN(String iSBN) {
  59. ISBN = iSBN;
  60. }
  61.  
  62. public String getAuthors() {
  63. return authors;
  64. }
  65.  
  66. public void setAuthors(String authors) {
  67. this.authors = authors;
  68. }
  69.  
  70. public String getTitle() {
  71. return title;
  72. }
  73.  
  74. public void setTitle(String title) {
  75. this.title = title;
  76. }
  77.  
  78. public int getCopyNum() {
  79. return copyNum;
  80. }
  81.  
  82. public void setCopyNum(int copyNum) {
  83. this.copyNum = copyNum;
  84. }
  85.  
  86. public void getData() {
  87. System.out.print("Nhap ISBN: ");
  88. ISBN = sc.nextLine();
  89. System.out.print("Nhap authors: ");
  90. authors = sc.nextLine();
  91. System.out.print("Nhap title: ");
  92. title = sc.nextLine();
  93. System.out.print("Nhap copyNum: ");
  94. copyNum = Integer.parseInt(sc.nextLine());
  95.  
  96. }
  97.  
  98. public String toString() {
  99. return "";
  100. }
  101.  
  102. public void display() {
  103. System.out.print("| - ISBN: " + ISBN);
  104. System.out.print("| - authors:" + authors);
  105. System.out.print("|- tittle: " + title);
  106. System.out.print("|- copyNum:" + copyNum);
  107.  
  108. }
  109.  
  110. public void closeSanner() {
  111. sc.close();
  112. }
  113. }
  114.  
  115. public class MainAppbyQuan {
  116. /*
  117. * 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ó
  118. * thể quản lý, trường bookNum:int lưu số tài liệu hiện có trong danh sách
  119. * hiện tại,
  120. */
  121. private int maxNum, bookNum;
  122. private Hashtable<String, Book> booklist;
  123. public Connection con;
  124. public Scanner sc = new Scanner(System.in);
  125.  
  126. public MainAppbyQuan() throws ClassNotFoundException, SQLException {
  127. Class.forName("org.postgresql.Driver");
  128. con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/bookdb", "postgres", "12345");
  129. booklist = new Hashtable<String, Book>();
  130. }
  131.  
  132. public MainAppbyQuan(int maxNum, int bookNum) throws ClassNotFoundException, SQLException {
  133. Class.forName("org.postgresql.Driver");
  134. con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/bookdb", "postgres", "12345");
  135. this.maxNum = maxNum;
  136. this.bookNum = bookNum;
  137. booklist = new Hashtable<String, Book>();
  138. }
  139.  
  140. // - initBooks(int n) cho phép tạo danh sách bookList có n bản ghi
  141. public void initBooks() {
  142. System.out.println("Nhap so ban ghi:");
  143. maxNum = Integer.parseInt(sc.nextLine());
  144. for (int i = 0; i < maxNum; i++) {
  145. System.out.println("Nhap ban ghi thu " + (i + 1) + " :");
  146. addBook();
  147. }
  148. }
  149.  
  150. // - addBook() cho phép tạo một đối tượng của lớp Book và bổ sung vào
  151. // bookList
  152. public void addBook() {
  153. Book a = new Book();
  154. a.getData();
  155. booklist.put(a.getISBN(), a);
  156. }
  157.  
  158. // - display() cho phép hiển thị danh sách trong bookList, mỗi bản ghi trên
  159. // một hàng
  160. public void display() {
  161. for (Object i : booklist.keySet()) {
  162. booklist.get(i).display();
  163. System.out.println();
  164. }
  165. }
  166.  
  167. /*- checkout() cho phép mượn tài liệu theo ISBN
  168. * và returnBook() cho phép trả tài liệu đã mượn theo ISBN (sử dụng trường copyNum:
  169. * checkout thì copyNum--;
  170. * returnBook thì copyNum++)*/
  171. public void checkout() {
  172. System.out.println("Nhap ISBN: ");
  173. String ISBN = sc.nextLine();
  174. for (Object i : booklist.keySet()) {
  175. if (ISBN.equals(booklist.get(i).getISBN())) {
  176. booklist.get(i).display();
  177. System.out.println(booklist.get(i).copyNum);
  178. System.out.println();
  179. }
  180. }
  181. }
  182.  
  183. public void returnBook() {
  184. System.out.println("Nhap ISBN: ");
  185. String ISBN = sc.nextLine();
  186. for (Object i : booklist.keySet()) {
  187. if (ISBN.equals(booklist.get(i).getISBN())) {
  188. booklist.get(i).copyNum--;
  189. System.out.println(booklist.get(i).copyNum);
  190. System.out.println();
  191. }
  192. }
  193. }
  194.  
  195. // searchBook() cho phép tìm kiếm theo title của tài liệu
  196. public void searchBook() {
  197. System.out.println("Nhap title:");
  198. String title = sc.nextLine();
  199. for (Object i : booklist.keySet()) {
  200. if (title.equals(booklist.get(i).getTitle())) {
  201. booklist.get(i).display();
  202. System.out.println();
  203. }
  204. }
  205. }
  206.  
  207. // exportToDB() cho phép lưu nội dung trường bookList vào bảng tabbooks
  208. public void exportToDB() throws SQLException {
  209. java.sql.Statement stm = con.createStatement();
  210. for (Object i : booklist.keySet()) {
  211.  
  212. String sql = "Insert into tabbooks values('" + booklist.get(i).getISBN() + "','"
  213. + booklist.get(i).getAuthors() + "','" + booklist.get(i).getTitle() + "',"
  214. + booklist.get(i).getCopyNum() + ")";
  215. int sr = stm.executeUpdate(sql);
  216. }
  217.  
  218. }
  219.  
  220. // – importFromDB() cho phép đọc các bản ghi trong bảng tabbooks vào trường
  221. // bookList
  222. public void importFromDB() throws SQLException {
  223. Statement stm = con.createStatement();
  224. String sql = "select*from tabbooks";
  225. ResultSet rs = stm.executeQuery(sql);
  226. while(rs.next()){
  227. Book a = new Book(rs.getString(1), rs.getString(2), rs.getString(3), rs.getInt(4));
  228. booklist.put(rs.getString(1), a);
  229. }
  230. }
  231.  
  232. public static void main(String[] args) throws SQLException, ClassNotFoundException {
  233. MainAppbyQuan dt = new MainAppbyQuan();
  234. dt.initBooks();
  235. dt.display();
  236. // dt.searchBook();
  237. // dt.checkout();
  238. // dt.returnBook();
  239. dt.exportToDB();
  240. // System.out.println("import thanh cong");
  241. // dt.importFromDB();
  242. // dt.display();
  243. }
  244. }
Add Comment
Please, Sign In to add comment