1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo bài tập lớn môn học NHẬP môn JAVA CHƯƠNG TRÌNH QUẢN lí các tài LIỆU TRONG THƯ VIỆN

27 11 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 351,89 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tổng quan các công nghệ sử dụng Trong project lần này nhóm chúng em đã sử dụng công nghệ : Java và SQL - Java là một nền tảng phát triển các ứng dụng phần mềm có vị trí rất lớn trong nh

Trang 1

NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── *

───────

BÁO CÁO BÀI TẬP LỚN

MÔN HỌC: NHẬP MÔN JAVA

CHƯƠNG TRÌNH QUẢN LÍ CÁC TÀI

LIỆU TRONG THƯ VIỆN

Sinh viên thực hiện : Phạm Tuấn Hưng

Nguyễn Thái An

Đỗ Văn Vũ

Lớp : IT3670Q_117849 – K64 Giáo viên hướng dẫn : TS TRẦN HẢI ANH

Trang 2

Hà Nội, tháng 12 năm 2020

MỤC LỤC

Mục lục……….2

Lời nói đầu……… 3

CHƯƠNG 1 GIỚI THIỆU CHUNG 6

1.1 Đặt vấn đề 6

1.2 Tổng quan các công nghệ sử dụng 6

1.3 Mục tiêu đặt ra 6

CHƯƠNG 2 CÔNG NGHỆ SỬ DỤNG 7

2.1 Công nghệ Java 7

2.1.1 Giới thiệu chung 7

2.1.2 Mô tả 7

2.2 Công nghệ SQL 8

CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH 10

3.1 Xây dựng chương trình 10

3.1.1 Các lớp của chương trình 10

1 Lớp Document 10

2 Lớp DocumentUI 10

3.1.2 Các tương tác 11

1 Kết nối và ngắt kết nối với database 11

2 Phương thức thực thi câu truy vấn khi nhấn vào Button 12

3 Button “Add” 13

4 Button “Update” 14

5 Button “Delete” 15

6 Button “Clear” 16

7 Hiển thị dữ liệu lên Table 16

8 Tìm kiếm dữ liệu 17

3.2 Kết quả chương trình 19

3.3 Kết quả thử nghiệm 21

CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 22

Tài liệu tham khảo……….…22

Phụ lục………23

Trang 3

LỜI NÓI ĐẦU

Việc ứng dụng máy tính để quản lý thông tin đã phát triển mạnh ở các nước tiêntiến từ những thập niên 70 Còn ở Nước ta hiện nay, vấn đề áp dụng Tin học để xử lýthông tin trong công tác quản lý đã trở thành nhu cầu bức thiết, nhất là trong thời đại

"mở cửa" với các nước khác trên thế giới

Hiện nay, việc quản lý tài liệu trong thư viện là một vấn đề hết sức cần thiết.Việc Tin học hóa hệ thống quản lí tài liệu góp phần không nhỏ vào quá trình quản lýcủa tài liệu trong trường

Sau khi khảo sát tại trường Đại học Bách Khoa Hà Nội, nhóm chúng em đã cùngnhau quyết định phân tích và thiết kế cho phần quản lí các tài liệu trong thư viện củatrường Số tài liệu của trường cũng đang dần tăng lên do vậy nhu cầu Tin học hóa hoàntoàn về hệ thống quản lí thư viện đang là một vấn đề khá cấp thiết Đó cũng là lý do mànhóm chúng em chọn đề tài này

Để hoàn thành được bài tập lớn này, nhóm chúng em xin được gửi lời cảm ơnchân thành đến thầy giáo hướng dẫn đề tài Thầy Trần Hải Anh, Giảng viên Viện Côngnghệ Thông tin và Truyền thông, Trường Đại học Bách Khoa Hà Nội - đã hết lòng giúp

đỡ, hướng dẫn, chỉ dạy tận tình để nhóm em hoàn thành được đề tài này

Hà Nội, tháng 12 năm 2020

Nhóm 2.2

Phạm Tuấn Hưng Nguyễn Thái An

Đỗ Văn Vũ

Trang 4

PHÂN CÔNG THÀNH VIÊN TRONG NHÓM

STT Họ tên MSSV Công việc đóng Thời gian Mức Tỉ lệ

góp thực hiện độ đóng góp

công việc hoàn

thành

chương trình,thiết kế database,kết nối chươngtrình vớidatabase

trình

3 Đỗ Văn Vũ 20198276 Lên ý tưởng giao 1 ngày 100% 20%

diện

Trang 5

CHƯƠNG 1 GIỚI THIỆU CHUNG

1.1 Đặt vấn đề

Trong “chương trình quản lí các tài liệu trong thư viện” sẽ có các chức năng

thêm,sửa,xóa, tìm kiếm các tài liệu trong thư viện Sau nhiều lần trao đổi, gặp mặt với thầy Trần Hải Anh, nhóm chúng em đã có thể hiểu được những điều mình cần phải làm

và phân chia công việc cho từng thành viên trong nhóm

1.2 Tổng quan các công nghệ sử dụng

Trong project lần này nhóm chúng em đã sử dụng công nghệ : Java và SQL

- Java là một nền tảng phát triển các ứng dụng phần mềm có vị trí rất lớn trong

những năm cuối thế kỉ 20, đầu thế kỉ 21 Đánh dấu sự trưởng thành của mô hình lập trình hướng đối tượng, nó được coi là một nền tảng mang tính cách mạng trong ngành phần mềm

Mô hình máy ảo Virtual Machine đã cho phép các ứng dụng viết bằng Java có thể chạy trên nhiều hệ điều hành khác nhau

- SQL được sử dụng trong các ngôn ngữ quản lý cơ sở dữ liệu (CSDL) và chạy

trên máy đơn lẻ Do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớn theo

mô hình khách/chủ (Client/Server), nhiều phần mềm sử dụng ngôn ngữ SQL đã ra đời mà điển hình là MS SQL Server, Oracle, Sybase

1.3 Mục tiêu đặt ra

- Hoàn thành chương trình “quản lí các tài liệu trong thư viện ”

- Các thành viên trong nhóm hiểu và sử dụng tốt 2 công nghệ : Java và SQL

- Nâng cao kĩ năng làm việc nhóm

- Nâng cao khả năng tìm kiếm, học hỏi

Trang 6

CHƯƠNG 2 CÔNG NGHỆ SỬ DỤNG

2.1 Công nghệ Java

2.1.1 Giới thiệu chung

Java là một nền tảng phát triển các ứng dụng phần mềm có vị trí rất lớn trong những

năm cuối thế kỉ 20, đầu thế kỉ 21 Đánh dấu sự trưởng thành của mô hình lập trình hướng đối tượng, nó được coi là một nền tảng mang tính cách mạng trong ngành phần mềm Mô hình máy ảo Virtual Machine đã cho phép các ứng dụng viết bằng Java có thể chạy trên nhiều hệ điều hành khác nhau

2.1.2 Mô tả

Lần đầu tiên xuất hiện vào năm 1992 như là một ngôn ngữ dùng trong nội bộ tập đoàn Sun Microsystems để xây dựng ứng dụng điều khiển các bộ xử lý bên trong máy điện thoại cầm tay, lò vi sóng, các thiết bị điện tử dân dụng khác Không chỉ là một ngôn ngữ, Java còn là một nền tảng phát triển và triển khai ứng dụng trong đó máy ảo Java,

bộ thông dịch có vai trò trung tâm

Sun, công ty đã phát minh ra ngôn ngữ Java, chính thức ban hành bản Java

Development Kit 1.0 vào năm 1996 hoàn toàn miễn phí để các nhà phát triển có thể tải

về, học Java, xây dựng các ứng dụng Java và triển khai chúng trên các hệ điều hành có

hỗ trợ Java Ban đầu, Java chủ yếu dùng để phát triển các applet, các ứng dụng nhúng vào trình duyệt, góp phần làm sinh động các trang web tĩnh vốn hết sức tẻ nhạt hồi đó Tuy nhiên, cùng với sự phát triển của công nghệ thông tin và nhu cầu của xã hội, Java applet đã dần mất đi vị trí của nó và thay vào đó, các công ty, cộng đồng ủng hộ Java đãphát triển nó theo một hướng khác Hiện nay, công nghệ Java được chia làm ba bộ phận:

J2SE

Gồm các đặc tả, công cụ, API của nhân Java giúp phát triển các ứng dụng trên desktop

và định nghĩa các phần thuộc nhân của Java

J2EE

Gồm các đặc tả, công cụ, API mở rộng J2SE để phát triển các ứng dụng quy mô xí nghiệp, chủ yếu để chạy trên máy chủ (server) Bộ phận hay được nhắc đến nhất của công nghệ này là công nghệ Servlet/JSP: sử dụng Java để làm các ứng dụng web

Trang 7

Ngày nay, khi nhắc đến Java người ta không còn chỉ nhắc đến Java như là một ngôn ngữ mà nhắc đến Java như là một công nghệ hay một nền tảng phát triển Nó bao gồm các bộ phận:

Máy ảo Java: JVM

Bộ công cụ phát triển: J2SDK

Các đặc tả chi tiết kĩ thuật (specifications)

Ngôn ngữ lập trình (programming language)

2.2 Công nghệ SQL

SQL : Giữa những năm 1970, một nhóm các nhà phát triển tại trung tâm nghiên cứu

của IBM tại San Jose phát triển hệ thống cơ sở dữ liệu "Hệ thống R" dựa trên mô hình của Codd Structured English Query Language, viết tắt là "SEQUEL" (tạm dịch là

"Ngôn ngữ truy vấn tiếng Anh có cấu trúc"), được thiết kế để quản lý và truy lục dữ liệu được lưu trữ trong Hệ thống R Sau này, tên viết tắt SEQUEL được rút gọn thành SQL để tránh việc tranh chấp nhãn hiệu (từ SEQUEL đã được một công ty máy bay của UK là Hawker-Siddeley đăng ký) Mặc dù SQL bị ảnh hưởng bởi công trình của tiến sĩ Codd nhưng nó không do tiến sĩ Codd thiết kế ra Ngôn ngữ SEQUEL được thiết kế bởi Donald D Chamberlin và Raymond F Boyce tại IBM, và khái niệm của

họ được phổ biến để tăng sự chú ý về SQL

Phiên bản cơ sở dữ liệu quan hệ phi thương mại, không hỗ trợ SQL đầu tiên được phát triển năm 1974.(Ingres from U.C Berkeley.)

Năm 1978, việc thử nghiệm phương pháp được khởi đầu tại một cơ sở thử nghiệm của khách hàng Cuộc thử nghiệm đã chứng minh được sự có ích và tính thực tiễn của hệ thống và đã chứng tỏ sự thành công của IBM Dựa vào kết quả đó, IBM bắt đầu phát triển các sản phẩm thương mại bổ sung thêm SQL dựa trên nguyên mẫu Hệ thống R bao gồm System/38 (Hệ thống/38) (được công bố năm 1978 và được thương mại hóa tháng 8 năm 1979, SQL/DS (được giới thiệu vào năm 1981) và DB2 (năm 1983)

Cùng thời điểm đó Relational Software, Inc (bây giờ là Oracle Corporation) đã nhậnthấy tiềm năng của những khái niệm được Chamberlin and Boyce đưa ra và đã pháttriển phiên bản Hệ quản trị cơ sở dự liệu quan hệ riêng của họ cho Navy, CIA và các tổchức khác Vào mùa hè năm 1979, Relational Software, Inc giới thiệu Oracle V2

(Phiên bản 2), phiên bản thương mại đầu tiên hỗ trợ SQL cho máy tính VAX Oraclethường xuyên được nhắc tới một cách không nghiêm túc vì đã tấn công thị trườngcủa IBM trong 2 năm, nhưng việc táo bạo nhất trong quan hệ công chúng của họ là tấncông một phiên bản của IBM System/38 chỉ trong có vài tuần Tương lai của Oracle đãđược đảm bảo vì có sự quan tâm đáng kể của công chúng sau đó mới phát triển, trongkhi đã có nhiều phiên bản của các nhà cung cấp khác

IBM đã quá chậm trong việc phát triển SQL và các sản phẩm quan hệ, có lẽ vì ban đầu

nó không dùng được trong môi trường Unix và máy tính lớn (Mainframe), và họ sợ nó

sẽ làm giảm lợi nhuận thu được từ việc bán các sản phẩm cơ sở dữ liệu IMS (những sản phẩm dựa trên mô hình cơ sở dữ liệu định hướng chứ không phải cơ sở dữ liệu quan hệ) của mình Trong lúc đó, Oracle vẫn đang phát triển, IBM đang phát

Trang 8

triển System/38, được mong đợi là hệ cơ sở dữ liệu quan hệ đầu tiên của họ Với năng lực và thiết kế tiên tiến của nó, người ta cho rằng nó có thể sẽ thay thế cho hệ thống Unix và máy tính lớn.

SQL được thừa nhận là tiêu chuẩn của ANSI (American National Standards Institute) vào năm 1986 và ISO (International Organization for Standardization) năm 1987 ANSI đã công bố cách phát âm chính thức của SQL là "ess kyoo ell", nhưng rất nhiều các chuyên gia cơ sở dữ liệu nói tiếng Anh vẫn gọi nó là sequel Một quan niệm sai khác cũng được phổ biến rộng rãi đó là "SQL" là chữ viết tắt của "Structured Query Language" (Ngôn ngữ truy vấn có cấu trúc) Thực tế không phải như vậy!

Trang 9

CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH

Trang 10

3.1.2 Các tương tác.

Lớp DocumentUI được khởi tạo sẽ hiển thị lên toàn bộ giao diện cho người dùng tương tác

1 Kết nối và ngắt kết nối với database

Đầu tiên, sẽ tạo phương thức kết nối đến database

Trang 11

JOptionPane.showMessageDialog(nul, "ConnectionError" );

}}

Và tiếp đó là ngắt kết nối với database

2 Phương thức thực thi câu truy vấn khi nhấn vào Button

Trong giao diện gồm có 4 Button, khi nhấn vào 1 Button thì dữ liệu sẽ được lấy

từ các TextField hay lựa chọn dữ liệu trên Table sau đó tương tác với database để có thể thêm,sửa xóa và sau đó tất cả các dữ liệu sau khi được tương tác,sẽ thấy được những sự thay đổi mới trên Table Do đó, chúng em đã tạo phương thức thực hiện các câu truy vấn SQL khi nhấn vào Button

privatevoidexecuteSQlQuery(String query ,String message ){

}catch(Exception ex ){

ex printStackTrace();

} }

3 Button “Add”

Khi chọn vào Button “Add” các TextField sẽ được kiểm tra, nếu TextField nào rỗng sẽ được chương trình yêu cầu nhập dữ liệu Sau khi không còn TextField nào rỗng thì dữ liệu của tài liệu mới sẽ được lấy từ các TextField rồi thêm vào database và

Trang 12

hiện lên thông báo thêm thành công Sau đó các TextField sẽ được làm mới để có thể thêm các dữ liệu khác vào Ở đây không cần TextField nhập ID mới vì trong database

đã tạo trường Into Increment cho ID để nó tự tạo ID và đảm bảo các ID không trùng nhau

if(tfType.getText().equals("")

JOptionPane.showMessageDialog(this,"Pleaseenter

documenttype");

elseif(tfNameDoc.getText().equals("")

JOptionPane.showMessageDialog(this, "Pleaseenter documentname" );

elseif(tfAuthor.getText().equals(""))

JOptionPane.showMessageDialog(this, "Pleaseenterauthor

name");

elseif(tfPublisher.getText().equals("")

JOptionPane.showMessageDialog(this,"Pleaseenter

publisher");

elseif(tfReleaseNumber.getText().equals("")

JOptionPane.showMessageDialog(this, "Pleaseenterrelease

Khi nhập dữ liệu vào TextField “Release Number”, chỉ có thể nhập số chứ không thể

kí tự là chữ Do đó, TextField này sẽ được bắt sự kiện keyTyped để chọn lọc

Trang 13

download by : skknchat@gmail.com

Trang 14

privatevoidsetDataOnTFWhenSelect(){

@Override

publicvoidmouseClicked(MouseEvent arg0 ){

tfSelectRow setText( i "" );

tfID setText( model getValueAt( i ,0).toString();

}

Và sau đó chỉ cần nhấn vào Button “Update”, dữ liệu sẽ được cập nhật lêndatabase Nếu chưa chọn vào dữ liệu nào của Table sẽ có thông cáo yêu cầu chọn dữliệu cần update Ở đây chúng em đã tạo 1 TextField để chứa thông tin ID và ẩn nó đi

và cũng không thể chỉnh sửa gì vào TextField này TextField có tác dụng lấy ID đểcập nhật dữ liệu có ID trùng với ID dữ liệu đã chọn trên Table

tfPublisher.getText()+ "',ReleaseNumber='" +tfReleaseNumber.getText()+ "'whereID="

+Integer.parseInt(tfID getText();

executeSQlQuery( query , "Updated" );

tfType setText( "" );

tfNameDoc setText( "" );

Trang 15

5 Button “Delete”

Khi muốn xóa một dữ liệu, chỉ cần chọn dữ liệu cần xóa ở Table và chọn Button

“Delete” Tương tự cập nhật thì xóa cũng cần dựa vào ID để xóa dữ liệu cần xóa.Nếu chưa chọn vào dữ liệu nào của Table sẽ có thông cáo yêu cầu chọn dữ liệu cần xóa

6 Button “Clear”

Khi không ưng ý với liệu đã nhập vào các TextField,có thể chọn Button “Clear”

để xóa tất cả dữ liệu đã nhập vào TextField

7 Hiển thị dữ liệu lên Table

Tất cả các dữ liệu sẽ được hiển thị lên Table Đầu tiên tất cả dữ liệu sẽ được lưuvào 1 ArrayList kiểu dữ liệu Document Kiểu dữ liệu Document chính là lớp

Document định nghĩa, gồm có :

Trang 16

privateString type , documentName , author , publisher ;

privateintreleaseNumber ;

Hàm khitoởạcalpủớDocument

publicDocument(intiD ,String type ,String documentName ,String author ,String

publisher ,intreleaseNumber ){

this.iD =iD;

this.type=type;

this.documentName=documentName;

this.author=author;

this.publisher=publisher;

this.releaseNumber=releaseNumber;}

Các dữ liệu được lấy về từ database sẽ được lưu vào 1 ArrayList kiểu dữ liệu

intiD = rs getInt( "ID" );

String type = rs geString( "Type" );

String documentName = rs getString("DocumentName");

String author = rs getString("Author");

String publisher = rs geString("Publisher");

intreleaseNumber = rs getInt("ReleaseNumber");

Document document =new

Document( iD , type , documentName , author , publisher , releaseNumber );

listDoc add( document );

} disconnect();

}catch(Exception e ){

e printStackTrace();

}

returnlistDoc ; }

Và để hiển thị dữ liệu được lấy từ database DefaultTableModel sẽ thêm các dữ liệu kiểu Document vào để hiện thị lên Table

privatevoidshowDocInTable(){

ArrayList<Document>list;

list=getAlDocument();

for(Documentdocument:list){

model.addRow(document.toArray();

}}

Trang 17

Khi model thêm các dữ liệu mới kiểu dữ liệu được thêm vào model sẽ là 1 mảngObject.Do đó,chúng em đã xây dựng phương thức toArray( ) ở lớp Document

Khi muốn tìm kiếm, chỉ cần nhập kí tự có liên quan đến dữ liệu cần tìm Kí tự sẽ

so sánh với các dữ liệu trong database, dữ liệu nào có kí tự giống với kí tự trongTextField tìm kiếm sẽ được hiển thị bất kể là ID,Type,Document Name,Author,Publisher, Release Đầu tiên, chúng em sẽ tạo 1 phương thức để tìm kiếm dữ liệu vàhiển thị lên Table

privatevoidfilDocJTable(String valueToSearch )

{ connect();

try{

String query = "select*from LibrarywhereID like'%" +

valueToSearch + "%'orTypelike'%" + valueToSearch + "%'orDocumentNamelike

'%" + valueToSearch + "%'orAuthorlike'%" + valueToSearch + "%'orPublisherlike '%" + valueToSearch + "%'orReleaseNumberlike'%"

+valueToSearch+"%'";

ResultSetrs=smt.executeQuery(query);

DefaultTableModelmodel=(DefaultTableModel)

}catch(SQLExceptione){

e.printStackTrace();

}

Ngày đăng: 25/04/2022, 08:51

HÌNH ẢNH LIÊN QUAN

- B5 : tải công cụ hỗ trợ cho SQL Sever giúp cấu hình dễ dàng hơn: Công cụ Microsoft SQL Sever Management Studio  https://docs.microsoft.com/vi- vn/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15 - BÁO cáo bài tập lớn môn học NHẬP môn JAVA CHƯƠNG TRÌNH QUẢN lí các tài LIỆU TRONG THƯ VIỆN
5 tải công cụ hỗ trợ cho SQL Sever giúp cấu hình dễ dàng hơn: Công cụ Microsoft SQL Sever Management Studio https://docs.microsoft.com/vi- vn/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15 (Trang 24)
w