ĐỀ TÀI JAVA - WEB QUẢNG CÁO XE GẮN MÁY
Trang 1GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
Bộ Giáo Dục – Đào Tạo
Trường Đại Học Dân Lập Cửu Long KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI JAVA - WEB QUẢNG CÁO XE GẮN MÁY
Giáo viên hướng dẫn: Viên Thanh Nhã
Phan Hồ Duy PhươngSinh viên thực hiện: Nguyễn Thị Thúy Phượng
MSSV: 05.020.115
Trang 2Bộ Giáo Dục – Đào Tạo
Trường Đại Học Dân Lập Cửu Long KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI JAVA - WEB QUẢNG CÁO XE GẮN MÁY
Giáo viên hướng dẫn: Viên Thanh Nhã
Phan Hồ Duy PhươngSinh viên thực hiện: Nguyễn Thị Thúy Phượng
MSSV: 05.020.115
Trang 3GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
MỤC LỤC
Đề tài: QUẢNG CÁO XE GẮN MÁY 4
1 Mục tiêu 4
2 Lý do chọn đề tài 4
3 Yêu cầu đề tài 4
a Chức năng 4
b Phân tích 4
c Quản trị 4
d Các trang web dự kiến 5
4 Mô hình ERD 5
5
5 Mô hình vật lý 5
6 Mô hình quan hệ dữ liệu 6
7 Bảng mô tả các thực thể và các mối kết hợp 6
a Thực thể XE 6
b Thực thể LOAIXE 7
c Thực thể CHITIETXE 7
d Thực thể PHUTUNG 7
e Thực thể KHACHHANG 7
f Các mối kết hợp 8
8 Ràng buộc toàn vẹn 8
9 Giao diện 8
a Trang chủ 8
b Trang đăng nhập 9
c.Trang thông tin xe 10
10
d Trang chi tiết xe 10
e Trang cập nhật xe 11
f Trang cập nhật khách hàng 11
g Trang giá bán lẻ các sản phẩm 12
h Trang tìm kiếm 12
10 Giải thích các đoạn code 13
a Tạo lớp kết nối 13
b Trang xử lý đăng nhập 16
c.Trang Hiện Dữ liệu 17
d Trang chi tiết xe 20
e.Trang cập nhật xe 23
f Trang xử lý cập nhật xe 33
j Trang giá bán lẻ các sản phẩm 36
k Trang tìm kiêm xe 36
ĐỒ ÁN JAVA- WEB
Trang 4Đề tài: QUẢNG CÁO XE GẮN MÁY
2 Lý do chọn đề tài.
Ngày nay,công nghệ thông tin không ngừng phát triển, nó không chỉ mang tính chất thương mại Nó giúp ích cho việc kinh doanh mua bán của các công ty, cửa hàng, đại lý Nó góp phần mở rộng việc kinh doanh, mua bán của các công ty
Như chúng ta biết, ngày nay xe máy là một phương tiện đi lại nhanh chóng và hiệu quả mà bất cứ ai cũng cần Vì vây, việc kinh doanh mua bán mặt hàng này đang được chú ý và quan tâm Đó là lý do em chọn đề tài này
3 Yêu cầu đề tài.
a Chức năng.
Đưa thông tin cho khách hàng xem
Cập nhật thông tin xe
Cập nhật thông tin khách hàng
Giá bán lẻ các sản phẩm
Tìm kiếm thông tin cho người dùng
b Phân tích.
Yêu cầu về lưu trữ: Lưu trữ thông tin của từng loại xe.
Yêu cầu về tra cứu: Tra cứu về loại xe.
Yêu cầu về giao diện: Cho phép thau tác qua lại giữa các trang web Yêu cầu về phân quyền: Do chương trình này dành cho các tổ chức kinh doanh mua bán nên đòi hỏi sự bảo mật cao
Yêu cầu về sao lưu dữ liệu: Nên sao lưu dữ liệu thường xuyên để đề phòng mất cơ sở dữ liệu
Để thuận lợi cho việc quản lý các loại xe
c Quản trị.
Người quản trị là người có toàn quyền kiểm soát ứng dụng củachương trình,có quyền kiếm soát mọi hoạt động của chương trình.Người quản trị có thể đăng nhập vào hệ thống và quản lý các dữ liệu (thêm, xóa ,sửa) Ngoài ra ngừơi quản trị có thể xem thông tin quảng cáo
Trang 5GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
Đối với khách hàng, muốn biết các thông tin sản phẩm thì có thể vào trang web để xem và chon lựa những loại xe mà mình thích, hợp sở thích của mình
Chức năng quản trị đối với khách hàng
+ Nhập thông tin khách hàng
+ Sửa thông tin khách hàng
+ Xóa thông tin khách hàng
Chức năng quản trị đối với trang web
+ Nhập thông tin xe
+ Sửa thông tin xe
+ Xóa thông tin xe
+ Tìm kiếm theo loại xe
d Các trang web dự kiến.
Trang chủ.
Trang thông tin xe.
Trang cập nhật xe.
Trang cập nhật khách hàng.
Trang giá bán lẻ các sản phẩm.
Trang tìm kiếm loại xe.
4 Mô hình ERD.
thuoc
Co nhieu
Chi Tiet Xe MaChiTiet
DungTich GiaCa HDSuDung Mau
<pi> VA20 VA20 F8 VA50 VA20
<M>
Xe MaXe
TenXe HinhAnh MoTa
<pi> VA20 VA20 VA50 VA200
<M>
LoaiXe MaLoaiXe
TenLoaiXe
GhiChu
DacDiem
<pi> VA20 VA20 VA100 VA50
<M>
KhachHang MaKhachHang TenKhachHang DiaChi DienThoai Email
<pi> VA20 VA20 VA50 VA20 VA50
<M>
5 Mô hình vật lý.
Trang 6FK_KHACHHAN_REFERENCE_XE FK_XE_REFERENCE_LOAIXE
MaLoaiXe TenXe HinhAnh MoTa
varchar(20) varchar(20) varchar(20) varchar(50) varchar(200)
<varchar(200) varchar(50)
<pk>
<fk>
LoaiXe MaLoaiXe TenLoaiXe GhiChu DacDiem
varchar(20) varchar(20) varchar(100) varchar(50)
<pk> KhachHang
MaKhachHang MaXe TenKhachHang DiaChi DienThoai Email
varchar(20) varchar(20) varchar(20) varchar(50) varchar(20) varchar(20)
<pk>
<fk>
6 Mô hình quan hệ dữ liệu.
XE ( MaXe, TenXe, HinhAnh, MoTa ).
CHITIETXE ( MaChiTiet, DungTich, HDSuDung, GiaCa, Mau ).
PHUTUNG ( MaPhuTung, TenPhuTung, GiaCa, Mau, MoTa, HinhAnh ).
LOAIXE ( MaLoaiXe, TenLoaiXe, GhiChu, DacDiem ).
KHACHHANG ( MaKhachHang, TenKhachHang, DiaChi, DienThoai,
Email )
7 Bảng mô tả các thực thể và các mối kết hợp.
a Thực thể XE.
Trang 7GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
b Thực thể LOAIXE.
c Thực thể CHITIETXE.
sử dụng
d Thực thể PHUTUNG.
e Thực thể KHACHHANG.
hàng
Trang 8f Các mối kết hợp.
Mối quan hệ giữa XE và CHITIETXE.
Mối kết hợp: có nhiều, tạo một quan hệ giữa xe và chi tiết xe là: quan hệ 1-n Có nghĩa là một xe có nhiều chi tiết xe và ngược lại nhiều chi tiết xe thuộc một xe
Mối quan hệ giữa XE và PHUTUNG.
Mối kết hợp: có nhiều, tạo một quan hệ giữa xe và phụ tùng là: quan hệ 1-n Có nghĩa là một xe có nhiều phụ tùng và ngược lại nhiều phụ tùng của một xe
Mối quan hệ giữa LOAIXE và XE.
Mối kết hợp: thuộc, tạo một quan hệ giữa loai xe và xe là: quan hệ 1- n
Có nghĩa là một loại xe có nhiều xe và ngược lại nhiều xe thuộc một loại xe
Mối quan hệ giữa XE và KHACHHANG.
Mối kết hợp: đã mua, tạo một quan hệ giữa xe và khách hàng là: quan hệ 1-n Có nghĩa là một xe được nhiều khách hàng và ngược lại nhiều khách hàng của một xe
8 Ràng buộc toàn vẹn.
RB1: Mỗi loại xe phải có một xe tương ứng
RB2: Mỗi khách hàng có một mã duy nhất và không trùng lắp
RB3: Mỗi xe phải có một tên duy nhất
RB4: Ngày nhập xe không thể nhỏ hơn ngày bán xe
RB5: Giá bán phải không âm
9 Giao diện.
a Trang chủ.
Trang 9GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
b Trang đăng nhập.
Trang 10c.Trang thông tin xe.
d Trang chi tiết xe.
Trang 11GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
e Trang cập nhật xe.
f Trang cập nhật khách hàng.
Trang 12g Trang giá bán lẻ các sản phẩm.
h Trang tìm kiếm
Trang 13GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
10 Giải thích các đoạn code.
a Tạo lớp kết nối.
// Tạo ra lớp kết nối
package my;
import com.borland.dx.sql.dataset.*;
import java.util.*;
// Hàm tạo ra lớp kết nối
public class KetNoi {
public Database database1 = new Database();
public String trangThaiKetNoi = "";
//Statement thuc thi cau truy van
// sau khi statement lay duoc bao nhieu mau tin thi no cat vao resultsetpublic java.sql.Statement sta = null;
public java.sql.ResultSet res = null;
public Vector vIndex = null;
public boolean flagSql = true;
Trang 14
System.out.println("Dang ket noi csadl");
// Hàm ket noi cơ sở dữ liệu
public void KetNoiDatabase()
trangThaiKetNoi = "Ket noi thanh cong";
// Tao ra doi tuong statement
System.out.println("Dong ket noi CSDL");
trangThaiKetNoi = "da dong ket noi";
}
// Hàm lấy dữ liều về gán vào một vector
public Vector getDataVector( int viTriTruongTable,String sql,String loi)
System.out.println(sql);
Trang 15GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
// Hàm lấy về số mẫu tin
public int laySoMauTin (String sql, String loi)
//hàm thực thi cau lệnh insert,delete, update la execute
Sau khi thuc thi xong co trang thai la true false
public void thucThiSql(String sql, String loi)
Trang 16flagSql = false;
System.out.println(loi + " " + l.toString());
}
//Hàm lấy mẫu tin đầu tiên
public String layMauTinDauTien(String sql, String loi, int viTri)
//lay mot mau tin dau tien
if(res != null && res.next())
// Tao doi tuong ket noi
my.KetNoi kn = new my.KetNoi ();
// Tao vector đăng nhập để thực hiện câu truy vấn
Vector vDangNhap = kn.getDataVector(1,"select * from LoGin where username
= '"+us+"' AND password ='"+pa+"'","loi khi lay du lieu");
kn.KetNoiDatabase();
// Kiểm tra đăng nhập nếu lớn hơn không thì gởi biến user,password lên session.// dieu kien xay ra tra ve mau tin cat vao vector
Trang 17GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
c.Trang Hiện Dữ liệu.
<% // Tạo kết nối cơ sở dữ liệu
my.KetNoi kn = new my.KetNoi ();
// Tạo biến cbo, lấy biến mã loại xe so sánh khác bằng null thì lấy về mã loại xe String cboDangChon = "";
if(request.getParameter("bienMaLoaiXe") != null)
cboDangChon = request.getParameter("bienMaLoaiXe");
kn.KetNoiDatabase();
//Khai báo Vector đe hứng các giá trị
Vector vMaLoaiXe=new Vector();
Vector vMaLoaiXeDefault = new Vector();
Vector vTenLoaiXe = new Vector();
Vector vHinh=new Vector();
Vector vXe = new Vector();
Vector vMaXe = new Vector();
// Thực hiên câu truy vấn
vMaLoaiXeDefault = kn.getDataVector(1,"select top 1 MaLoaiXe from LoaiXe
// Lấy về dữ liệu đầu tiên
String duLieuDau = kn.layMauTinDauTien("select MaLoaiXe from
LoaiXe","Loi lay mau tin dau tien",1);
if(request.getParameter("bienMaLoaiXe") != null)
Trang 18<form name ="myForm" >
Chon loai xe: <select name="cbo" onchange="xuLy()" width="100">
Trang 19GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
Trang 20d Trang chi tiết xe.
//tao ket noi
my.KetNoi gc=new my.KetNoi ();
//tao cac vector
Vector vTenXe=new Vector();
Vector vGiaCa=new Vector();
Vector vMau=new Vector();
Vector vMoTa=new Vector();
Vector vmapt=new Vector();
String maXeLayTuTrangXe="";
maXeLayTuTrangXe=request.getParameter("maXe");
// lay thong tin chi tiet xe
vTenXe=gc.getDataVector(1,"select TenXe from ChiTietXe,Xe where
ChiTietXe.maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi
phutung1");
vGiaCa = gc.getDataVector(1,"select GiaCa from Xe,ChiTietXe where
Xe.maxe=ChiTietXe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"' ","loi
phutung2");
vMau=gc.getDataVector(1,"select Mau from Xe,ChiTietXe where Xe
maxe=ChiTietXe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung3");vMoTa=gc.getDataVector(1,"select MoTa from chitietXe,Xe where
chitietXe.maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung4");// lay thong tin phu tung xe
Vector vTenPhuTung=new Vector();
Vector vGiaPhuTung=new Vector();
Vector vMauPhuTung=new Vector();
Vector vMoTaPhuTung=new Vector();
Vector vHinhAnhPhuTung=new Vector();
// Thực hiện câu truy vấn
vTenPhuTung=gc.getDataVector(1,"select TenPhuTung from PhuTung,Xe where PhuTung.maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung1");vGiaPhuTung = gc.getDataVector(1,"select Giaca from PhuTung,Xe where
PhuTung.maxe=Xe.maxe and Xe.maxe='"+maXeLayTuTrangXe+ "'","loi phutung2");vMauPhuTung=gc.getDataVector(1,"select Mau from PhuTung,Xe where PhuTung maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung3");
vMoTaPhuTung=gc.getDataVector(1,"select PhuTung.Mota from PhuTung,Xe where PhuTung.maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung4");vHinhAnhPhuTung=gc.getDataVector(1,"select PhuTung.Hinhanh from PhuTung,Xe where PhuTung.maxe=Xe.maxe and Xe.maxe = '"+maXeLayTuTrangXe+"'","loi phutung5");
Trang 21GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
<TD style="PADDING-TOP: 5px" width=50><font face="Arial"
color="blue"> Tên Xe </font><input type="text"
readonly="readonly" name="txtPT" value="<%=vTenXe.elementAt(0)%>">
</td>
</tr>
<TR vAlign=top>
<TD style="PADDING-TOP: 5px" width=50><font face="Arial"
color="blue"> Giá : </font><input type="text" readonly="readonly" name="txtG" value="<
%=vGiaCa.elementAt(0)%>">
</td>
</tr>
<TR vAlign=top>
Trang 22<TD style="PADDING-TOP: 5px" width=50><font face="Arial"
color="blue"> Màu: </font><input type="text" readonly="readonly" name="txtM"value="<%=vMau.elementAt(0)%>"> </td>
</tr>
<TR vAlign=top>
<TD style="PADDING-TOP: 5px" width=50><font face="Arial"
color="blue"> Mô Tả: </font><input type="text"
Trang 23GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
Vector vMaXe = new Vector();
Vector vTenXe = new Vector();
Vector vMoTa = new Vector();
my.KetNoi kn = new my.KetNoi ();
soMauTin = kn.laySoMauTin("select maXe from Xe","Loi Khi Lay So Mau Tin Xe") ;
if(kn.getDataVector(1,"select maXe from Xe ","Loi khi lay thong tin max").size()
> 0)
Trang 24<td height="63" colspan="2" valign="top"><div align="center">
<p><font size="7">CẬP NHẬT XE</font> </p>
<% <p><a href="TrangChu.jsp">Quay lai trang chu</a></p> %>
</div></td>
</tr>
<tr>
<td width="293" height="24" valign="top"><div align="right">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
Trang 25GVHD: Viên Thanh Nhã
Phan Hồ Duy Phương Đồ án Java-Web
// Tạo textbox tên xe
<td height="23" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
Trang 26int chuoiIndexVector = new
// Tạo Textbox Mô tả
<td height="23" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">