1. Trang chủ
  2. » Luận Văn - Báo Cáo

XÂY DỰNG hệ THỐNG QUẢN lý NHÂN sự tại CÔNG TY DIGITAL79

66 436 0

Đ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 66
Dung lượng 2,89 MB

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

Nội dung

Java đa ra kết nối JDBC kiểu 4 cho phép trình khách sử dụng các trình điều khiển gọn nhẹ kết nối trực tiếp vào trình điều khiển cơ sở dữ liệu đặc thù thuần Java trên máy chủ ở xa thông q

Trang 1

Bộ giáo dục và đào tạo Trờng Đại Học Bách Khoa Hà Nội Khoa Công NGhệ Thông Tiin

Bảo vệ thực tập tốt nghiệp

Xây dựng hệ thống quản lý nhân sự tại công ty Digital79

Phần I Cơ sở lý thuyết

I.Giới thiệu về trang Web

I.1 Tổng quan về World Wide Web :

- Internet là một kho thông tin khổng lồ, hoạt động dựa trên sự liên kết của hàng chục ngàn máy chủ và hệ thống mạng con trên thế giới

Trang 2

- Ban đầu, nó chỉ là một hệ thống mạng con của các tổ chức nghiên cứu,quân sự và trờng đại học sử dụng Dần dần, hệ thống mạng này ngày càng phát triển và hình thành nên hệ thống mạng rộng lớn bao trùm khắp toàn cầu kết nối đến mọi gia đình Đó chính là Internet.

- Ngày nay Internet còn đợc gọi với một tên khác đúng nghĩa hơn đó là World Wide Web (viết tắt WWW) hay mạng toàn cầu

- WWW là một mạng kết nối các máy tính trên toàn cầu, trong đó các máy tính hoàn toàn có thể giao tiếp đợc với nhau thông qua một chuẩn giao tiếp, gọi là HTTP

I.2 Hoạt động của WWW:

- Thông tin trên hệ thống WWW đợc lu trữ trong các trang Web

- Trang Web là các file đợc lu trữ trong một máy trính, gọi là Web Server

- Các máy tính đọc trang Web gọi là Web Client

- Các Web Client đọc các trang Web bằng một chơng trình, đó chính là trình duyệt Web – Web Browser

- Các loại Web Browser thông dụng : Internet Explorer, Netscape

Navigator Ngoài ra còn một số trình duyệt Web khác nh : Opera, Mozilla, Firefox, Lynx, …

I.3 Hoạt động của trình duyệt Web - Web Browser:

- Web Browser lấy trang Web về :

+ Trình duyệt gửi yêu cầu tới Web Server

+ Yêu cầu này tuân theo chuẩn HTTP, và có chứa một địa chỉ Web

+ Thí dụ về địa chỉ Web: http://www.Digital79.com

- Hiển thị trang Web :

+ Tất cả các trang Web đều chứa các lệnh hiển thị

+ Trình duyệt khi lấy trang Web từ Web Server về, sẽ căn cứ vào những lệnh này để hiển thị trang Web

+ Phần lớn các lệnh hiển thị đợc gọi là các thẻ HTML (tag)

I.4 File HTML:

- HTML là viết tắt của Hyper Text Markup Language – Ngôn ngữ địnhdạng siêu văn bản

- File HTML là một file chứa các thẻ định dạng

- Các thẻ định dạng này sẽ quy định cho trình duyệt Web Browser biết cách hiển thị các thành phần của một trang Web

- File HTML có đuôi mở rộng là : html, htm

- Một file HTML có thể đợc soạn thảo bằng những trình soạn thảo text

đơn giản

II.Căn bản về JSP

Trang 3

Java Server Pages (JSP) là một kỹ thuật server-side do đó chúng ta khôngthể thực hiện bất kỳ hành động nào ở client JSP cho phép chúng ta tách thành phần động của trang ra khỏi thành phần tĩnh HTML Rất đơn giản, chúng ta chỉ cần viết một tài liệu HTML bình thờng rồi sau đó bao quanh mã của thành phần động trong các tag đặc biệt, hầu hết các tag bắt đầu với

<% và kết thúc với %>

Kỹ thuật JSP là một thành phần trong đại gia đình Java; nó sử dùng ngôn ngữ kịch bản dựa vào ngôn ngữ lập trình Java, và các trang JSP đợc biên dịch thành servlets Từ đó chúng ta cũng nhận biết đợc, JSP thì không phụ thuộc bất kỳ nền (platform) nào Nó đáp ứng đợc khuynh hớng của Sun MicroSystem là “write one, run anywhere”

Các trang JSP có thể gọi các thành phần JavaBeans, Enterprise JavaBeans(EJB) hoặc custom tags để thực hiện các xử lý trên server Và nh thế, kỹ thuật JSP là thành phần chủ chốt trong kiến trúc khả chuyển của Java cho những ứng dụng dựa vào Web

Nh đã biết, JSP sẽ biên dịch thành servlets nhng JSP không thể thay thế servlet vì các lý do sau:

- Một số tác vụ đợc giải quyết rất tốt bằng servlet Ví dụ, các ứng dụng xuất ra dữ liệu nhị phân hoặc chỉ xác định nơi gửi trở lại cho ngời dùng (bằng cách dùng response.sendRedirect) đợc dùng servlet thì tốt nhất

- Một số tác vụ khác lại đợc giải quyết rất tốt bằng JSP nh các tình huống mà cấu trúc nền tảng của trang HTML là cố định nhng các giá trị trong nó lại thay đổi

- Còn các tác vụ còn lại cần sự kết hợp cả servlet và JSP Ví dụ, trong yêu cầu gốc đợc trả lời bằng một servlet mà thực hiện mọi công việc, lu trữ các kết quả trong các Beans và điều phối yêu cầu này đến một trong những trang JSP có thể hiển thị nó

Cả ba định hớng này đều có chổ đứng của nó Chẳng có định hớng nào

hổ trợ đầy đủ cho mọi ứng dụng

Trớc khi đi vào chi tiết công nghệ JSP, chúng tôi có một vài so sánh các công nghệ đợc sử dụng trong ứng dụng với các công nghệ khác

II.1 So sánh JSP với các công nghệ khác:

II.1.1 JSP với ASP:

ASP là công nghệ tơng đơng từ Microsoft JSP có ba lợi thế so với ASP

- Phần động đợc viết bằng Java, chứ không phải bằng các ngôn ngữ script

nh VBScript, JavaScript Vì thế nó mạnh mẽ hơn tốt hơn đối với các ứng dụng phức tạp cần các thành phần sử dụng lại

- JSP chạy đợc trên nhiều hệ điều hành và web servers khác nhau ngay cảvới IIS của Microsoft (cần có plugins từ Webphere, JRun, )

-Hỗ trợ sự mở rộng tag với custom tag

Trang 4

II.2 Các thành phần script của JSP:

Các thẻ bọc mã trong JSP cho phép chúng ta chèn mã vào servlet mã sẽ

đợc phát sinh từ trang JSP Có ba dạng sau:

Biểu thức có dạng <%= expressions %>, đợc định giá trị và chèn vào luồng xuất của servlet

Scriptlet có dạng <% code %>, đợc chèn vào phơng thức _jspService của servlet (đợc gọi là service)

Khai báo có dạng <%! code %>, đợc chèn vào thân của lớp servlet, nh là các field của lớp thông thờng

Template text

Trong nhiều trờng hợp, phần lớn các trang JSP chỉ bao gồm HTML tĩnh,

đợc biết nh là template text Có hai ngoại lệ phụ cho quy tắc template text

đợc chuyển thẳng sang HTML tĩnh Đầu tiên, nếu chúng ta muốn có <% trong luồng xuất thì chúng ta cần phải đặt <\% trong template text Thứ hai,nếu chúng ta muốn có chú thích trong JSP mà không có trong tài liệu kết quả, dùng:

Trong JSP có rất nhiều element có cú pháp XML nh jsp:useBean,

jsp:include, jsp:setProperty, Tuy nhiên scripting elements lại có hai dạng

II.2.1 Các biến đ ợc định nghĩa sẵn trong JSP :

Để đơn giản hoá mã trong các biểu thức hay scriptlets trong JSP, ngời ta cung cấp cho chúng ta chín đối tợng đã đợc định nghĩa trớc, có ngời còn gọi

là các đối tợng ngầm định Do các khai báo trong JSP nằm ngoài phơng thức _jspService (đợc gọi bởi service) nên các đối tợng này không cho phépcác khai báo truy cập vào

Trang 5

Có kiểu là javax.servlet.http.HttpServletResponse, có phạm vi toàn trang

(page) Chú ý rằng vì luồng xuất thì thờng làm vật đệm cho nên việc gán

mã tình trạng của HTTP và response header thì hợp lý trong JSP, mặc dù

điều này thì không đợc phép trong servlet một khi đã có luồng xuất nào đợcgởi đến client

out

Có kiểu javax.servlet.jsp.JspWriter và phạm vi trong một trang (page) Dùng để gởi các thông xuất đến client Đối tợng out đợc dùng thờng xuyên trong scriptlets, các biểu thức tự động đợc đa vào luồng xuất nên hiếm khi cần tham chiếu đến đối tợng này

session

Có phạm vi trong một phiên truyền (session) và kiểu tơng ứng là

javax.servlet.http.HttpSession Gọi về các phiên truyền đợc tạo tự động vì thế biến này vẫn còn kết nối ngay cả chẳng có một tham chiếu incoming session nào Một ngoại lệ là nếu chúng ta sử dụng thuộc tính session của page directive để tắc các phiên truyền, mà lại cố tham chiếu đến biến

session thì sẽ gây ra các lỗi vào lúc trang JSP đợc dịch thành servlet

application

Biến này có kiểu là javax.servlet.ServletContext, có phạm vi trong toàn ứng dụng (application) ServletContext lấy từ một đối tợng cấu hình servlet

là getServletConfig().getContext() Các trang JSP có thể lu trữ dữ liệu

persistent trong đối tợng ServletContext tốt hơn là trong các biến thể hiện ServletContext có các phơng thức setAttribute và setAttribute mà cho phép chúng ta lu trữ dữ liệu

Trang 6

II.2.2 Biểu thức trong JSP:

Biểu thức trong JSP đợc dùng để chèn các giá trị trực tiếp vào luồng xuất

Nó có dạng sau:

<%= Java expressions %>

Biểu thức này đợc định trị, đợc chuyển thành chuỗi, và đợc chèn vào trong trang Sự định trị diễn ra ở thời gian runtime (khi trang đợc yêu cầu)

và do đó có đầy đủ quyền truy cập các thông tin của yêu cầu này Ví dụ sau

đây mô tả ngày/giờ mà trang đợc yêu cầu:

Current time: <%= new java.util.Date() %>

Trong Java mỗi câu lệnh đều có dấu ; kết thúc dòng Tại sao biểu thức trong JSP lại không có dấu ; ? Vì biểu thức này đợc đa vào luồng xuất chẳng hạn nh PrintWriter Với ví dụ trên có thể chuyển vào servlet nh sau:PrintWriter out = response.getWriter();

out.println(Current time: + new java.util.Date());

Biểu thức nh là giá trị trong elements khác

Biểu thức có thể đợc sử dụng trong các thuộc tính của các elements khác.Giá trị từ các biểu thức này sẽ đợc tính vào thời gian yêu cầu (request time).Các elements cho phép sử dụng biểu thức trong các thuộc tính của chúng là:

Scriptlets là những đoạn mã có chứa bất kỳ mã Java nào nằm giữa “<%”

và “%>” Nếu chúng ta muốn thực hiện thứ gì đó phức tạp hơn là chỉ chèn vào một biểu thức đơn giản thì JSP scriptlets cho phép chúng ta thêm bất kỳ

đoạn mã Java nào vào trang JSP Các scriptlets này đợc đa vào phơng thức _jspService (mà đợc gọi bởi service) của servlet Có cú pháp:

<% Java Code %>

II.2.4 Khai báo trong JSP:

Trang 7

Một khai báo trong JSP cho phép chúng ta định nghĩa các phơng thức hoặc các trờng (biến) có phạm vi toàn trang Khai báo sẽ đợc chèn vào trong lớp của servlet (bên ngoài phơng thức _jspService đợc gọi bởi service

để xử lý một yêu cầu) Một khai báo có dạng sau:

<%! Java Code %>

Các khai báo trong JSP thì không phát sinh ra bất kỳ thông xuất nào, chúng thờng đợc dùng để liên kết với các biểu thức hoặc scriptlets Chẳng hạn, đây là một trang JSP mà in ra số lần truy cập vào trang

II.3 Xử lý nhúng và chuyển h ớng giữa các trang:

Trong quá trình xử lý và chuyển dữ liệu cho form chúng ta có thể nhúng

và triệu gọi những trang JSP khác với trang hiện hành.Ví dụ chúng ta có thể

đa một trang HTML hoặc JSP vào trong trang JSP hiện tại để hổ trợ thêm

th viện hay tính năng bổ sung nào đó Hay khi nhận đợc dữ liệu submit từ trình khách, trang JSP nhận đợc dữ liệu có thể chuyển hớng hoặc triệu gọi

đến trang JSP khác.

II.3.1 Nhúng file vào trang với chỉ thị include:

Chỉ thị <%include %> thờng dùng để dem một nội dung file html hay jsp bên ngoài vào trang hiện hành Cú pháp sử dụng nh sau:

<%@include file = filename %>

Ví dụ: Trong chơng trình chúng ta có sử dụng các hàm th viện chứa trongfile Common.jsp Th viện này đợc đa vào trang JSP hiện hành nh sau:

<%@include file = Common.jsp %>

II.3.2 Sử dụng thẻ <jsp:include>:

Chỉ thị <%@include %> chỉ dùng để nhúng các mã nguồn tĩnh Nếu muốn nhúng kết quả kết xuất từ các trang jsp, servlet hay html khác vào trang hiện hành chúng ta sử dụng thẻ <jsp:include> với cú pháp nh sau:

<jsp:page include page = filename flush = true />

Ví dụ: trong chơng trình sử dụng thẻ <jsp:include> để nhúng kết quả củatrang Header.jsp, Footer.jsp vào các trang JSP nh sau:

<jsp:include page = Header.jsp flush = true />

<jsp:include page = Footer.jsp flush = true />

II

.3.3 Chuyển tham số bằng thẻ <jsp:param> :

Khi nhúng trang bằng thẻ <jsp:include> bạn có thể chuyển tham số cho trang đợc nhúng để nhận đợc kết xuất linh động hơn bằng cách sử dụng thẻ con <jsp:param>

Ví dụ

testParam.jsp

<jsp: include page = testParam2.jsp flush = true >

<jsp:param name = greeting value = Welcome />

<jsp:include>

<%

out.println ( Goi tham so từ test1.jsp );

Trang 8

testParam2.jsp

<%

String param = request.getParameter ( greeting );

out.println ( Goi tham so tu test2.jsp );

out.println (param: + param);

%>

II.3.4 Chuyển tiếp đến trang khác với thẻ <jsp:include>:

Chúng ta sử dụng thẻ <jsp:forward> để triệu gọi và chuyển dữ liệu cho trang jsp khác xử lý Trong ví dụ sau chúng ta có 3 trang JSP Trang thứ nhất hiển thị form đăng nhập yêu cầu nhập vào tên username và password Trang thứ hai kiểm tra: nếu username, password trùng với username,

password cho trớc thì thông báo đăng nhập thành công, còn nếu không

đúng hoặc rỗng sẽ chuyển đến trang thứ 3 thông báo yêu cầu đăng nhập những trờng còn thiếu

<form method = post action = security.jsp>

Username: <input type = text name = username>

Password: <input type = password name = password >

<input type = submit value = Login>

<jsp:include page = login.jsp flush = true >

<jsp:param name = sError value = Ban nhap lai username & password /

>

Trang 9

<APPLET CODE= MyApplet.class

WIDTH=457 HEIGHT=350>

</APPLET>

sö dông jsp:plugin action nh sau:

<jsp:plugin type= applet

code= MyApplet.class

width=457 height= 350 />

Ngoµi bèn thuéc tÝnh nµy jsp:plugin cßn cã c¸c thuéc tÝnh sau vµ hÇu hÕt gièng (nhng kh«ng ph¶i lµ tÊt c¶) nh c¸c thuéc tÝnh cña APPLET tag

codebase, align, archive, hspace, name, vspace, title

Gièng nh APPLET tag

<APPLET CODE= MyApplet.class

WIDTH=457 HEIGHT=350>

<B> Error: this example requires Java </B>

</APPLET>

víi

Trang 10

<jsp:plugin type= applet

II.3.7 Chuyển trang:

page directive cho phép chúng ta điều khiển cấu trúc của servlet bằng cách đa vào các lớp, đặt MIME type, … Một page directive có thể đợc đặt bất cứ nơi nào trong trang JSP

<%@ page import=“java.util.*, com.vandau.*” %>

page directive định nghĩa một số thuộc tính phụ thuộc vào trang và giao tiếp giữa các thuộc tính này với JSP container

language

Định nghĩa ngôn ngữ kịch bản đợc sử dụng trong scriptlets, biểu thức và khai báo Trong JSP 1.2 là phiên bản mới nhất chỉ có hổ trợ java cho thuộc tính này do đó java này cũng là giá trị mật định

<%@ page language=java %>

extends

Thuộc tính này chỉ định lớp cha (superclass) của servlet sẽ đợc phát sinh cho trang JSP, có dạng sau:

<%@ page extends= package.class %>

Chú ý rằng khi sử dụng thuộc tính này phải hết sức cẩn thận vì tại server

có thể đã dùng lớp cha mật định

import

Thuộc tính này mô tả các kiểu sẵn dùng trong môi trờng kịch bản (theo java) Chúng ta có thể import vào từng lớp hoặc cả một gói (package)

<%@ page import=package.class | package.* %>

Nếu import vào nhiều lớp hay packages thì cách nhau dấu ,

session

Thuộc tính session kiểm soát liệu có hay không một trang tham gia vào HTTP session Có hai giá trị true và false Mật định là true, chỉ ra rằng biến ngầm định session nên đợc nối kết với session hiện hành Giá trị false

có nghĩa rằng chẳng có session nào đợc sử dụng tự động và nếu cố truy cập vào biến session sẽ trả lỗi vào lúc trang đợc dịch thành servlet

buffer

Thuộc tính này xác định kích thớc của vùng đệm đợc sử dụng bởi biến out Có dạng sau:

<%@ page buffer= none | sizekb %>

Thuộc tính này có giá trị mật định là 8kb , giá trị none chẳng có vùng

đệm nào đợc cấp và tất cả dữ liệu xuất sẽ đợc ghi trực tiếp qua

ServletResponse, PrintWriter

autoFlush

Trang 11

Xác định liệu luồng xuất có vùng đệm đợc tự động flush (giá trị true mật

định) khi vùng đệm đầy hay sẽ tung ra một ngoại lệ khi vùng đệm tràn (false)

Chú ý rằng sẽ không hợp lý nếu đặt autoFlush=false khi buffer=none

<%@ page errorPage=Ralative URL %>

Ngoại lệ tung ra sẽ có sẵn trong biến ngầm định exception

isErrorPage

Xác định trang JSP hiện thời có thể hoạt động nh một trang lỗi cho một trang JSP khác Giá trị false là mật định cho thuộc tính này

contentType

Thuộc tính này gán Content-Type cho response header, mô tả kiểu

MIME của tài liệu đợc gởi đến client Thuộc tính contentType có một tronghai dạng sau:

<%@ page contentType=MIME-Type %>

<%@ page contentType=MIME-Type; charset=Character-Set %>

Một số kiểu MIME-Type thờng dùng: text/html, text/xml, text/plain, image/gif, image/jpeg

pageEncoding

Định nghĩa bộ mã hóa ký tự cho trang JSP (character encoding), thuộc tính này hổ trợ cho bộ mã Unicode và Latin-1, có giá trị mật định là ISO-8859-1

II.3.8 Chuyển h ớng sang trang mới với sendRedirect() :

Ngoài việc chuyển tiếp chúng ta có thể sử dụng phơng thức

sendRedirect() để chuyển hớng và triệu gọi trang JSP khác xử lý Sự khác nhau giữa chuyển tiếp (forward) và chuyển hớng (redirect) đó là lệnh

sendRedirect () chỉ thực hiện triệu gọi trang mà không chuyển tham số của trang hiện hành cho trang chuyển hớng

Ví dụ: từ trang security.jsp ta có thể chuyển hớng đến trang thongbao.jsp bằng lệnh nh sau:

<%

&

response.sendRedirect (thongbao.jsp);

%>

Trang 12

III Giới thiệu JDBC

III.1 JDBC và trình điều khiển truy xuất cơ sở dữ liệu:

Công việc lập trình ứng dụng mà JSP và servlet thờng thực hiện nhất đó

là lu trữ và truy xuất cơ sở dữ liệu (database), cung cấp thông tin cho trình khách Việc truy xuất cơ sở dữ liệu trong JSP và servlet dựa vào trình truy xuất JDBC theo chuẩn Java JDBC là các trình đạo diễn cho phép bạn truy cập vào cơ sở dữ liệu của các hệ nh Access, MS SQL Server, Oracle… bằngngôn ngữ truy vấn SQL

Theo đặc tả của Sun có 4 kiểu JDBC sau:

Kiểu 1: JDBC sử dụng cầu nối ODBC Nếu bạn đã từng làm việc với

các hệ cơ sở dữ liệu trên Windows, bạn sẽ biết đến cách kết nối ODBC (Open Database Connectivity) ODBC là cách kết nối tổng quát nhất đến mội hệ cơ sở dữ liệu thông qua trình quản lý ODBC của Windows Mỗi hệ cơ sở dữ liệu sẽ cung cấp một trình điều khiển (driver) có khả năng đọc hiểu đợc cơ sở dữ liệu của chúng Trình điều khiển này sẽ đợc đăng ký với

bộ quản lý ODBC Tất cả các lệnh truy xuất cơ sở dữ liệu sau đó đợc thực

Truy xuất cơ sở dữ liệu JDBC-ODBC

Java Application, Applet, Servlet

Java Application, Applet, Servlet

Mã Java

Mã đặc

thù

Trang 13

thi bằng lệnh SQL Java cung cấp cho chúng ta khả năng sử dụng JDBC để gọi ODBC và bằng cách này chúng ta có thể kiểm soát rất nhiều hệ quản trị cơ sở dữ liệu khác nhau Quan hệ cầu nối JDBC-ODBC đợc thể hiện trong hình sau Sun cung cấp sẵn th viện kết nối JDBC-ODBC kèm theo bộ JDK.

Kiểu 2: JDBC kết nối trực tiếp với các trình điều khiển cơ sở dữ liệu

Khi Java phát triển, các nhà cung cấp hỗ trợ các trình điều khiển JDBC kết nối trực tiếp với trình điều khiển đặc thù của mỗi hệ cơ sở dữ liệu (native database driver), mà không cần phải qua trung gian ODBC của Windows nữa Các kết nối này nhanh và hiệu quả hơn kiểu JDBC-ODBC

Kiểu 3: JDBC kết nối thông qua các ứng dụng mạng trung gian Ngày

nay, các ứng dụng đều gắn liền với Internet Theo mô hình lập trình phân tán, ứng dụng trung gian (middle-ware) trên một máy chủ sẽ chịu trách nhiệm kết nối với cơ sở dữ liệu Nhiệm vụ của trình khách là sử dụng nhữngtrình điều khiển JDBC gọn nhẹ, có khả năng giao tiếp với ứng dụng trung gian qua Internet để truy vấn dữ liệu

Kiểu 4: JDBC kết nối thông qua các trình điều khiển đặc thù ở xa Mô

hình kết nối theo kiểu 3 do phải qua ứng dụng trung gian (middle-ware) nên

có thể ảnh hởng đến tốc độ truy xuất cơ sở dữ liệu phía máy khách Java đa

ra kết nối JDBC kiểu 4 cho phép trình khách sử dụng các trình điều khiển gọn nhẹ kết nối trực tiếp vào trình điều khiển cơ sở dữ liệu đặc thù (thuần Java) trên máy chủ ở xa thông qua mạng Internet

JDBC truy xuất cơ sở dữ liệu kiểu 2

Java Application, Applet, Servlet

Java Application, Applet, Servlet

JDBC Driver

Database driver

Database driver

Cơ sở dữ liệu (Access, SQL Server, Oracle)

Mã Java

Mã đặc thù

Trang 14

III.2.Truy xuất cơ sở dữ liệu thông qua JDBC-ODBC

Hiện nay, hệ điều hành Windows cũng nh các cơ sở dữ liệu chạy trên nên Windows nh MS Access, MS SQLServer, rất phổ biến nên theo xu h-ớng chung đó chúng ta sử dụng các truy xuất dữ liệu bằng trình điều khiển JDBC-ODBC (kiểu 1) đây là kiểu thông dụng và dễ dùng nhất

Kết nối với cơ sở dữ liệu

Kết nối với cơ sở dữ liệu, JDBC đòi hỏi hai yếu tố là trình điều khiển

(t-ơng ứng với các kiểu kết nối) và thông tin để kết nối (nh địa chỉ máy chủ, tên tài khoản đang đăng nhập và mật khẩu & ) Đối với cơ chế truy xuất thông qua ODBC của Windows, chúng ta sử dụng trình điều khiển

JdbcOdbcDriver do Sun cung cấp Khai báo tên lớp này nh sau:

String drivername = sun.jdbc.odbc.JdbcOdbcDriver;

Sau đó gọi phơng thức tĩnh forName của lớp Class để nạp và khởi tạo trình điều khiển:

Class.forName(drivername).newInstance();

Tiếp đó cung cấp cho trình điều khiển các thông tin cụ thể nh: tên cơ sở dữ liệu, tên ngời dùng, mật khẩu nh sau:

String connectionURL = jdbc:odbc:QLNV;

String username = sa; //Tên mặc định đặng nhập vào cơ sở dữ liệu MS SQLServer

String password = “”; // Mật khẩu mặc định

Cuối cùng đối tợng Connection sẽ thể hiện kết nối đến cơ sở dữ liệu, gọi phơng thức getConnection của lớp DriverManager để yêu cầu trình điều khiển nạp bởi Class.forName () trớc đây tiếp nhận thông tin và thực hiện kết nối

Java Application, Applet, Servlet

JDBC Driver

Cơ sở dữ liệu (Access, SQL Server, Oracle)

Mã Java

Mã Java

Internet

JavaNative Driver

Trang 15

III.3 Truy vấn dữ liệu

Bớc quan trọng là trích dữ liệu của các bảng trong cơ sở dữ liệu, định nghĩa câu truy vấn SQL nh sau:

SELECT <select list> FROM <table name> [WHERE <search condition list>] [GROUP BY <column name> [, <column name>]…]

<select list>: danh sách các trờng cần trích ra từ [danh sách] <table name>, *: liệt kê hết các trờng trong bảng

<table name>: tên 1 hoặc nhiều bảng trong CSDL

[WHERE <search condition list>]: điều kiện cho phép lọc các record với một hoặc nhiều thuộc tính thỏa điều kiện tìm kiếm

Ví dụ: String sqlQuery = “SELECT * FROM NHANVIEN WHERE MaNV

= 0001”;

String sqlQuery = “SELECT MANV, HoNV, MACV FROM NHANVIEN”;JDBC dựa vào đối tợng Statement để yêu cầu truy vấn dữ liệu Đối tợng này dùng để thực thi mọi câu lệnh SQL Riêng đối với lệnh SQL SELECT nếu truy vấn thành công, Statement sẽ trả về kết quả là tập dữ liệu truy vấn đợc

III.4 Trích xuất dữ liệu

Lệnh SELECT sau khi nhận đợc kết quả trả về là tập ResultSet, chúng ta gọi phơng thức next () để đi đến từng mẫu tin và in ra kết quả của các cột Phơngthức next () sẽ trả về false nếu đã đến cuối tập dữ liệu

III.5 Xử lý các lệnh SQL INSERT / UPDATE / DELETE

Ngoài lệnh SQL SELECT thờng sử dụng ra, các lệnh thay đổi dữ liệu nh INSERT (tạo một mẫu tin), UPDATE (cập nhật mẫu tin) và DELETE (xóa

bỏ mẫu tin) cũng sẽ đợc sử dụng rất thờng xuyên trong chơng trình

INSERT:

Cú pháp: INSERT INTO <table name> [<column name> [, <column name>]

… ] VALUES (<expression> [, <expression>]… )

<table name>: tên bảng cần thêm mẫu tin

<column name>: tên cột cần thêm dữ liệu, nếu không nêu tên cột nó sẽ tự

động thêm dữ liệu vào các cột tơng ứng trong bảng của theo mệnh đề

VALUES

Trang 16

Ví dụ: INSERT INTO PHONGBAN (MaPB, TenPB) VALUES (‘KD’, ‘Data Entry A’)

String sSQL = ” INSERT INTO PHONGBAN(MaPB, TenPB)

VALUES (‘KD’ , ‘Data Entry A’);

table_name: tên bảng cần thay đổi dữ liệu

column_name1, column_name2: tên cột cần thay đổi dữ liệu

search_condition: điều kiện tìm kiếm cập nhật

Ví dụ:

UPDATE PHONGBAN SET MaPB = ‘BH’ , TenPB = ‘Data Entry B’ String sSQL = update PHONGBAN set MaPB = ‘BH’ , TenPB = ‘DataEntry B’;

stat.executeQuery (sSQL);

DELETE

Cú pháp:

DELETE table_name [WHERE <search_condition>]

table_name: tên bảng cần xóa dữ liệu

search_condition: điều kiện tìm để xóa dữ liệu

Ví dụ:

DELETE PHONGBAN WHERE MaPB = ‘BH’

String sSQL = delete PHONGBAN where MaPB = ‘OF’;

Stat.executeQuery (sSQL);

IV Hệ quản trị cơ sở dữ liệu Microsoft

Access

IV.1 Giới thiệu chung về Access:

Cho đến nay Microsoft Access đã trở thành phần mềm CSDL liên tục phát triển, thể hiện bớc ngoặt quan trọng về sự dễ dàng trong việc sử dụng, nhiều ngời đã bị cuốn hút vào việc tạo các CSDL hữu ích của riêng mình vàcác ứng dụng CSDL hoàn chỉnh

Hiện nay, Microsoft Access đã trở thành một sản phẩm phần mềm mạnh,

dễ dàng, đơn giản khi làm việc Chúng ta hãy xem xét lợi ích của việc sử dụng phần mềm phát triển ứng dụng CSDL nh Microsoft Access

Hệ CSDL: Theo định nghĩa đơn giản nhất, một CSDL là một tập hợp các bản ghi và tệp đợc tổ chức cho một mục đích cụ thể

Trang 17

Hầu hết các hệ quản trị CSDL hiện nay đều lu giữ và xử lý thông tin bằng mô hình quản trị CSDL quan hệ Từ quan hệ bắt nguồn từ thực tế là mỗi bản ghi trong CSDL chứa các thông tin liên quan đến một chủ thể duy nhất Ngoài ra, các dữ liệu của hai nhóm thông tin có thể ghép lại thành một chủ thể duy nhất dựa trên các giá trị dữ liệu quan hệ Trong một hệ quản trị CSDL quan hệ, tất cả các dữ liệu ấy đợc quản lý theo các bảng, bảng lu giữ thông tin về một chủ thể Thậm chí khi sử dụng một trong những phơng tiện của một hệ CSDL để rút ra thông tin từ một bảng hay nhiều bảng khác ( thờng đợc gọi là truy vấn - Query ) thì kết quả cũng giống nh một bảng Thực tế còn có thể hiện 1 truy vấn dựa trên kết quả của một truy vấn khác.

Các khả năng của một hệ CSDL là cho chúng ta quyền kiểm soát hoàn toàn bằng cách định nghĩa dữ liệu, làm việc với dữ liệu và chia sẻ dữ liệu với ngời khác Một hệ CSDL có 3 khả năng chính : Định nghĩa dữ liệu, xử

lý dữ liệu và kiểm soát dữ liệu

Toàn bộ chức năng trên nằm trong các tính năng mạnh mẽ của

Microsoft Access

IV.1.1 Định nghĩa dữ liệu:

Xác định CSDL nào sẽ đợc lu giữ trong một CSDL, loại của dữ liệu và

mối quan hệ giữa các dữ liệu

về một cá thể xác định của chủ thể đó Có thể nói một khoá cơ bản

(Primary) (gồm một hoặc nhiều trờng) và một hoặc nhiều chỉ mục (Index) cho mỗi bảng để giúp tăng tốc độ truy nhập dữ liệu

IV.2.1 Đặt khoá chính (Primary key):

Mỗi bảng trong một CSDL quan hệ đều phải có một khoá cơ bản và

xác định khoá cơ bản trong Microsoft Access tuỳ theo từng tính chất quan trọng của bảng hay từng CSDL mà ta chọn khoá chính cho phù hợp : Mở bảng ở chế độ Design, chọn một hoặc nhiều trờng muốn định nghĩa là khoá.Dùng chuột bấm vào nút Primary Key trên thanh công cụ

IV.2.2 Định nghĩa khoá quan hệ:

Sau khi định nghĩa xong hai hay nhiều bảng có quan hệ thì nên báo cho Acces biết cách thức quan hệ giữa các bảng Nếu làm nh vậy, Access sẽ biết liên kết tất cả các bảng mỗi khi sử dụng chúng sau này trong các truy vấn, biểu mẫu hay báo cáo

Các tính năng tiên tiến của bảng trong Access:

+ Phơng tiện Table Wizard giúp định nghĩa các bảng

+ Phép định nghĩa đồ hoạ các mối quan hệ

Trang 18

+ Các mặt nạ nhập liệu cho trờng để tự đọng thêm các ký hiệu định dạng vào các dữ liệu.

+ Có khả năng lu giữ các trờng Null cũng nh các trờng trống trong CSDL

+ Các quy tắc hợp lệ của bảng có khả năng kiểm tra tính hợp lệ của mộttrờng dựa trên các trờng khác

+ Công cụ riêng để tạo các chỉ mục

Các tính năng tiên tiến của truy vấn trong Access:

+ Phơng thức tối u truy vấn Rushmore (từ Foxpro).

+ Phơng tiện Query Wizard giúp thiết kế các truy vấn

+ Truy xuất các thuộc tính cột (Quy cách định dạng, các vị trí thập phân (mặt nạ nhập) )

+ Có khả năng lu trữ kiểu trình bày bảng dữ liệu hoặc truy vấn

+ Các công cụ tạo truy vấn (Query builder) khả dụng trên nhiều vùng + Khả năng định nghĩa các kết nối tự động đợc cải thiện.

+ Hỗ trợ các truy vấn Union và các truy vấn thứ cấp (trong SQL)

+ Cửa sổ soạn thảo SQL đợc cải tiến

+ Tăng số trờng có thể cập nhật đợc trong một truy vấn kết nối

V.Cài đặt Web Server hiểu Java

- Để chạy đợc các file *.jsp chúng ta cần đến một trình chủ Web Server hiểu và diễn dịch đợc JSP Hiện có rất nhiều trình chủ có khả năng này nh : TomCat, Java Web Server, Jrun, WebLogic…Tuy nhiên ở đây ta chỉ giới thiệu về trình chủ TomCat vì đây là trình chủ Web Server hỗ trọ Java, có cấu hình đơn giản, chạy đợc trên hầu hết các hệ điều hành Unix, Linux, Windows Tốc độ thông dịch trang JSP của trình chủ TomCat khá nhanh và hiệu quả Một thế mạnh nữa là TomCat có mã nguồn mở, bạn hoàn toàn có thể nghiên cứu cách viết một trình chủ Ưeb Server bàng Java

- Cách cài đặt :

+ Với TomCat, gọi th mục cài đặt trình chủ là $CATALINA_HOME ờng là th mục C:\Jakarta-tomcat-4.1.27 CATALINA là tên gọi của mã TomCat) Bạn chép file *.jsp cần xem vào th mục $CATALINA_HOME\webapps\ROOT Bạn chuyển vào th mục c:\ $CATALINA_HOME\bin từ cửa sổ dòng lệnh (cmd) gõ lệnh sau :

c:\jakarta-tomcat-4.1.27\bin>startup

+ Sau lệnh trên, trình chủ Web Server khởi động và phục vụ trên cổng

8080 Để kiểm tra TomCat hoạt động cha, bạn mở trình duyệt Browser và

gõ vào URL sau: http://localhost:8080/

Cổng Web mặc định là cổng 80, khi gõ một địa chỉ URL nếu bạn không chỉ định tờng minh số hiệu cổng thì browser mặc định sử dụng cổng

80 Để buộc TomCat khởi động trên cổng 80 thay cho 8080 còn\ chứa file cấu hình server.xml sửa dòng :

<Connector

className = “org.apache.tomcat4.CoyoteConnector”

port=”8080” minProcessors=”5” maxProcessors=”75”

Trang 19

I.Phân tích :

I.1.Giới thiệu :

Trong những năm gần đây ngành CNTT đang trở thành một trong những ngành trọng điểm của toàn thế giới Nó đợc áp dụng trong hầu hết các lĩnh vực của đời sống chúng ta và dờng nh công việc sẽ thuận tiện, hiệu quả hơn rất nhiều nếu đợc áp dụng CNTT Tại Việt Nam, mặc dù ngành này còn khánon trẻ nhng chúng ta đã và đang có những bớc phát triển nhanh chóng để

có thể đẩy mạnh nền kinh tế của đất nớc, thúc đẩy sự phát triển của toàn xã hội và có thể hội nhập với nền văn minh toàn cầu

Tin học hoá trong công tác quản lý nhằm giảm bớt sức lao động của con ngời, tiết kiệm đợc thời gian, độ chính xác cao, gọn nhẹ và tiện lợi hơn rất nhiều so với việc làm thủ công quản lý trên giấy tờ Tin học hoá giúp thu hẹp không gian lu trữ, tránh đợc thất lạc dữ liệu, tự động hệ thống hoá và cụthể hoá các thông tin theo nhu cầu của con ngời

Hiện nay, tin học hoá trong quản lý đã và đang đợc xây dựng tại nhiều doanh nghiệp của nớc ta Digital79 là một công ty nh vậy Công ty TNHH này chuyên nhập khẩu, bán buôn và bán lẻ các mặt hàng: máy nghe nhạc MP3, MP4; Máy ảnh, máy quay phim và máy ghi âm kỹ thuật số Công ty

đợc thành lập từ ngày 13/6/2005 theo giấy phép số 2079/TC – UBND HBTngày 30/5/2005 Giám đốc của công ty trách nhiệm hữu hạn là Thạc sỹ quản trị kinh doanh Nguyễn Cảnh Tùng

Trang 20

Hiện nay công ty là nhà phân phối độc quyền về sản phẩm máy nghe nhạc MP3, MP4 thơng hiệu Sorell của Hàn Quốc và nhập các mặt hàng máy ảnh, máy quay phim, máy ghi âm kỹ thuật số từ một số nớc nh: Hàn Quốc, Nhật Bản và bán buôn cho các cửa hàng bán lẻ thuộc khu vực Hà Nội và TP HCM, đồng thời công ty cũng mở cửa hàng bán lẻ tại trụ sở chính của công ty tại địa chỉ Số 5 Lê Đại Hành, Hai Bà Trng, Hà Nội với mục đích giao dịch, giới thiệu sản phẩm và bán hàng.

Hiện tại mọi công việc quản lý nhân sự do ban lãnh đạo công ty đảm trách đều đợc làm hết sức thủ công và gặp rất nhiều khó khăn về lu trữ, tìm kiếm, cập nhật hồ sơ của nhân viên trong công ty Việc những ngời lãnh

đạo công ty muốn xem xét thông tin về một số nhân viên trong công ty khi không có mặt tại đó là hết sức khó khăn

Chính vì vậy công ty muốn đa tin học hoá vào công tác quản lý của mình Công ty muốn xây dựng một trang web để giúp những ngời quản lý công ty và các nhân viên có thể theo dõi và biết đợc thông tin về nhân sự ở bất cứ ở đâu dù phải đi công tác xa

Xuất phát từ nhu cầu quản lý nhân sự trên trang Web của công ty, em xinxây dựng một web site áp dụng công nghệ JSP và dùng hệ quản trị CSDL Microsoft Access nhằm đáp ứng nhu cầu trên Trong quá trình làm với vốn kiến thức còn có hạn trong bớc đầu tiếp xúc với công nghệ, ngôn ngữ, mô hình quản lý CSDL mới chắc không tránh khỏi nhiều sai sót, em mong luônnhận đợc những đóng góp ý kiến quí báu của thầy cô và bạn bè

I.2.Phát biểu bài toán:

Công tác quản lý nhân sự công ty TNHH Kỹ Thuật Số 79 do phó giám

đốc phụ trách nhân sự đảm nhiệm, qua khảo sát hiện trạng, nhu cầu quản lýnhân sự của công ty nh sau:

I.2.1.Thông tin cần quản lý:

Trang 21

Sơ đồ tổ chức nhân sự tại công ty

Việc quản lý nhân viên dựa vào các thông tin ghi trên "Sơ yếu lý

lịch" theo mẫu quy định của công ty, đợc trình bày nh sau:

Phó giám đốc phụ trách

nhân sự

Nhân viên kỹ thuật

( bảo hành - sửa chữa ) Nhõn viờn văn thư kiờm thủ quỹ, thủ kho

Nhân viên xuất nhập khẩu

Trang 22

Cộng hoà xã hội chủ nghĩa việt nam

……….Ngày…….tháng……năm……… Nguyên quán: Nơi đăng ký thờng trú hiện nay: Dân tộc: Tôn giáo: Thành phần bản thân hiện nay:……… Trình độ văn hoá:……… Trình độ ngoại ngữ:……… Tình trạng hôn nhân: Tình trạng sức khỏe hiện nay: Nghề nghiệp hoặc trình độ chuyên môn: Cấp bậc: lơng chính hiện nay:

Lời cam đoan

Tôi xin cam đoan lời khai trên là đúng sự thật, nếu có điều gì khai man tôi xin chịu trách nhiệm hoàn toàn

Xác nhận của chủ tịch UBND Xã, Phờng Ngày….tháng….năm… Ngời khai ký tên

Nhân viên đợc quản lý trực tiếp bởi phó giám đốc phụ trách nhân sự Trong quá trình làm việc của nhân viên, mọi sự biến động về số lợng, chất lợng của nhân viên, phó giám đốc phụ trách nhân sự phải có trách nhiệm báo cáo với chủ và ngời điều hành công ty mình, để từ đó công ty có kế hoạch về nhân sự

- Thông tin về sự biến động số lợng nhân viên gồm:

+ Tăng : Nhận nhân viên mới vào làm việc

+ Giảm : Nhân viên không còn làm việc tại công ty

Trang 23

- Thông tin về sự biến động chất lợng nhân viên gồm:

Là các thông tin phát sinh trong quá trình làm việc của nhân viên, cụ thể

đợc trình bày trong "Phiếu bổ sung hồ sơ nhân viên" Đợc trình bày cụ thể

nh sau:

Phiếu bổ sung thông tin nhân viên

Họ và tên (viết chữ in hoa) : Sinh ngày tháng năm Mới thay đổi nơi ở: Chức vụ mới đợc giao: Phòng: Tình trạng hôn nhân:

Mới thay đổi về trình độ học vấn, chuyên môn nghiệp vụ:

- Giáo dục phổ thông (lớp mấy):

- Chuyên môn nghiệp vụ:

I.2.2 Các nghiệp vụ quản lý:

- Với mỗi nhân viên khi vào công ty phải nộp hồ sơ xin việc bao gồm : Sơ yếu lý lịch, bản sao CMT, bằng cấp bản gốc, giấy khám sức khỏe (sơ yếu lý lịch có xác nhận của chính quyền địa phơng) Sau khi khớp các thông tin trên trong hồ sơ với các giấy tờ bản gốc, công ty sẽ giữ lại tập hồ sơ đó để lu trong tủ hồ sơ nhân viên do phó giám đốc phụ trách nhân sự quản lý Trong quá trình làm việc, nhân viên phải có trách nhiệm khai báo Phiếu bổ sung hồ sơ nhân viên cho công ty

- Khi có sự biến động về số lợng, chất lợng nhân viên, phó giám đốc phụ trách nhân sự phải cập nhật lại thông tin của các nhân viên trong hồ sơ Sau

đó phải hệ thống và tổng hợp lại các thông tin bổ sung đó lên ngời chủ và giám đốc điều hành của mình để họ nắm bắt đợc tình hình trong công ty

Trang 24

Nêú thấy có điều gì cần thiết phải thay đổi trong nhân sự thì chủ và giám

đốc điều hành sẽ chỉ thị cho phó giám đốc nhân sự làm điều đó

- Theo định kỳ 6 tháng (trớc ngày 31/5) hoặc một năm (trớc ngày 30/11) các phòng ban phải hoàn chỉnh việc gửi Phiếu bổ sung hồ sơ nhân viên về phó giám đốc phụ trách nhân sự

I.2.3 Yêu cầu tổ chức hệ thống Quản lý nhân sự:

- Hiện trạng về hệ thống công nghệ thông tin trong công ty: hiện nay công ty TNHH Digital79 có một hệ thống mạng máy tính với một máy chủ trung tâm kết nối đến các phòng ban khác

- Yêu cầu tổ chức hệ thống: căn cứ hiện trạng công nghệ thông tin nêu trên, ngời quản lý công ty đã đa ra yêu cầu về hệ thống Quản lý nhân sự nh sau:

Phục vụ nhân

viên/ tuyển dụng

Đăng ký tuyển

dụng

Phục vụ Admin Phục vụ quản lý

Đổi password Liệt kê danh sách

nhân viên

Trang 25

I.3.2 Biểu đồ luồng dữ liệu của hệ thống :

Biểu đồ luồng dữ liệu mức khung cảnh

Liệt kê danh sách nhân viên

Liệt kê danh sách user

Đăng ký tuyển dụng

Đổi password

Xoá nhân viên Sửa thông tin nhân viên

Tạo uer Đổi password

Gán quyền user Đổi quyền user

Đổi password Thêm nhân viên

Quản lý nhân viên

Admin

Liệt kê danh sách

user

Trang 26

4 Đổi thông Tin user

Biểu đồ luồng dữ liệu mức đỉnh

Biểu đồ luồng dữ liệu mức dới đỉnh

Bảng chi tiết user

Các quyền Nhân viên

Bảng cập nhật

Password

Password

Password Dữ liệu

NV Bảng cập nhật

Bảng tuyển dụng Bảng chi tiết NV

Quản lý

Nhân viên 1.Liệt kê

danh sách nhân viên

Admin

Password

Bảng tuyển dụng Bảng chi tiết NV

Quản lý

Nhân viên 1.Liệt kê

danh sách

Trang 27

Password TuyÓn dông

B¶ng cËp nhËt

3.§æi passwor d

NV viªn

2.3 Edit

NV viªn

4.1 Thªm user

4.2 Xo¸

user

4.3 Edit user

Trang 29

II.1.2 Các đơn vị thiết kế:

- Cập nhật nhân viên

+ Thêm nhân viên:

Nhập: MaNV, HoTen, BiDanh, TenThGoi,GioiTinh, NgaySinh,

HKTT, SoCMT, NoiCap, NgayCap, NguyenQuan, DKTT, DanToc,

TonGiao, SoDT, Email, MaPB, MaCV, MaTDVH, MaLuong, MaTr, TenTr, NgayVao

Xuất: Bảng nhân viên / thông báo lỗi

+ Chỉnh sửa thông tin nhân viên :

Nhập: MaNV, HoTen, BiDanh, TenThGoi,GioiTinh, NgaySinh,

HKTT, SoCMT, NoiCap, NgayCap, NguyenQuan, DKTT, DanToc,

TonGiao, SoDT, Email, MaPB, MaCV, MaTDVH, MaLuong, MaTr, TenTr, NgayVao

Xuất: Bảng nhân viên / thông báo lỗi

2.

Xoá NV

3.

Edit NV MaNV, HoTen, … MaNV, HoTen, …

MaNV, HoTen,… MaNV, HoTen, …

Trang 30

+ Thêm user

Nhập: username, password, permission

Xuất: Bảng user / thông báo lỗi

+ Sửa

Nhập: username, password, permission

Xuất: Bảng user / thông báo lỗi

Thông báo đã thêm nhân viên

Tiếp tục

Không Có

Trang 31

Thông báo đã thêm username

Tiếp tục Có

Trang 32

Tên Bảng Tên Trờng Loại dữ

liệu Độ dài của trờng Phụ đề

Trang 33

NHANVIEN MaNV Text 4 M· nh©n viªn

ng÷

Ngày đăng: 23/06/2016, 17:23

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w