成 绩 评 定 表
学生姓名 刘慧萍 班级学号 1109010103
专 业 信息与计算
科学
课程设计题目 商品销售信息管
理系统
评
语
组长签字:
成绩
日期 2013 年 12 月 日
课程设计任务书
学 院 理学院 专 业 信息与计算科学
学生姓名 刘慧萍 班级学号 1109010103
课程设计题目 商品销售信息管理系统
实践教学要求与任务:
本小型软件利用 myeclipse、tomcat 和 SQL Server2000 设计一个商品销售信息管理
系统,其可通过网页实现如下功能:
1、进行用户登录及新用户的注册;
2、用户登录之后可对商品信息、营业员信息、商品交易信息等进行整体浏览;
3、可对商品信息、营业员信息、商品交易信息进行主键查询;
4、可对查询后的商品信息、营业员信息和商品交易信息进行修改。
工作计划与进度安排:
第一周:
1、对该商品销售信息管理系统进行需求分析,并通过通过该数据之间的关系进行数据
库、数据表的设计;
2、然后通过 tomcat 服务器进行数据库与 myeclipse 的连接,以便进行后续功能中的数
据的增删查改各功能,然后通过 myeclipse 进行各界面的设置,该软件通过 MVC 模式
实现,首先对各界面进行初步界面设置。
第二周:
1、在上周界面设置的基础上,添加动态的各数据的增删查改等功能。其中主要以设
计 servlet、javabean、DAO 三个层次来以此实现对界面与数据库间的连接。
2、进行课设论文的撰写和答辩等工作。
指导教师:
2013 年 12 月 1 日
专业负责人:
2013 年 12 月 日
学院教学副院长:
2013 年 12 月 日
摘 要
为提高自身对数据库的进一步了解,并学会将其应用于实际问题,进
行了本次课程设计。本文主要通过 SQL2000 与 myeclipse 软件的结合,建
立了一个商品销售信息管理系统。
首先为实现将两者结合,进行初步的环境准备,如 tomcat 服务器的安
装与连接,系统信息 path 等的配置,SQL2000 中相关 jar 包的引用。然后在
实现初步的配置的基础上,开始进行相关网页的具体设计。本文采取 MVC
模式进行该系统实现的数据库与 jsp 网页的连接,其中采用 javabean 包、
servlet、和 DAO 三层进行该功能的实现。该系统最终可通过网页的形式实
现用户的登陆与注册、商品信息、营业员信息和商品交易信息等的数据增
删查改功能。具体实现步骤将在下文中具体给出。
本次课程设计让我学到很多数据库相关知识及 jsp 相关知识,获益良多,
感谢各位朋友们的倾力帮助,相信助人者天助也!
关键词 商品销售信息管理;jsp 网站(tomcat、SQL2000);MVC 模
式
目 录
1 系统功能概述 ............................................................................................................................................5
.系统功能 .................................................................................................................................5
.系统层次图 .............................................................................................................................6
2 数据库设计 ................................................................................................................................................6
需求分析 .................................................................................................................................7
E-R 模型..................................................................................................................................7
关系模型 .................................................................................................................................8
表结构设计 .............................................................................................................................9
3 系统各功能模块的详细设计 ....................................................................................................................14
tomcat 与数据库连接 ..............................................................................................................14
用户登陆模块 .........................................................................................................................15
注册新用户模块 ......................................................................................................................20
主窗体界面 ..............................................................................................................................25
数据管理(增、删、改)模块 ..............................................................................................27
信息查询管理 ...............................................................................................................27
信息浏览管理 ...............................................................................................................33
信息添加管理 ..............................................................................................................36
信息修改管理 ..............................................................................................................39
信息删除管理 ..............................................................................................................43
4 课程设计总结 ............................................................................................................................................46
参考文献 ........................................................................................................................................................46
1 系统功能概述
.系统功能
本系统主要以网上商城为模板进行简化的商品销售管理系统设计,将 jsp 网
页与 SQL2000 相结合以实现以下如要功能:
1、进行用户登录及新用户的注册;
2、用户登录之后可对商品信息、营业员信息、商品交易信息等进行整体浏
览;
3、可对商品信息、营业员信息、商品交易信息进行主键查询;
4、可对查询后的商品信息、营业员信息和商品交易信息进行修改。
.系统层次图
图 1-1 系统层次图
2 数据库设计
商品销售信息管理
文件
数据管理
数据查询
数据删除
注册新用户
退出
商品信息浏
览
营业员信息
浏览
供货商信息
浏览
商品交易信
息浏览
商品信息查
询
商品交易信
息查询
营业员信息
查询
供货商信息
查询
商品信息删
除
商品交易信
息删除
营业员信息
删除
供货商信息
删除
需求分析
该系统主要以实现商品信息、营业员、供货商信息的数据增删查改功能,在
应用 SQL2000 数据库与 jsp 开发语言结合,以实现网页版的系统功能。如下为该
系统的具体功能设计和数据库、数据表设计。
、系统功能
1、商品信息管理
该功能可对商品信息进行浏览,添加,查询,修改,删除等操作,并均可通
过网页的形式进行操作,同时在此基础上可对其进行进一步完善功能的添加。
2、供货商信息管理
该功能可对供货商信息进行浏览,添加,查询,修改,删除等操作,同样均
可通过网页的形式进行操作,同时在此基础上可对其进行进一步完善功能的添加。
3、商品交易数据管理
该功能可对商品交易情况信息进行浏览,添加,查询,修改,删除等操作,
也均可通过网页的形式进行操作,同时在此基础上可对其进行进一步完善功能的
添加。
、数据库的设计
该数据库包含以下实体及其属性:
1、商品信息(商品编号、商品名称、种类、库存量)
2、营业员信息(营业员编号,姓名,性别,联系电话)
3、供货商信息(供货商号、供货商名称、地址、联系人、联系电话、电子邮件)
4、系统信息(用户名、密码)
5、营业员卖出商品(售价、件数、交易日期)
6、供货商供应商品(进货日期、数量、进价)
E-R 模型
图 2-1 系统 E-R 模型
关系模型
图 2-2 商品信息关系模型
图 2-3 营业员信息关系模型
商品
供货商 营业员
供应商供应商
品
营业员卖出
商品
供应 卖出
商品信息
商品编号 库存量种类商品名称
营业员信息
营业员编号 联系电话性别姓名
供货商信息
供货商名称 联系电话联系人地址供货商号 电子邮件
图 2-4 供货商信息关系模型
图 2-5 系统信息关系模型
图 2-6 营业员卖出商品关系模型
图 2-7 供货商供应信息关系模型
表结构设计
本系统在 SQL Server2000 数据库里共设计了以下 6 个数据表来记录数据:
1、商品信息表建立及其数据:
SQL 语句:
create table product_info(
product_id varchar(20) primary key,
系统信息
密码用户名
卖出商品
交易日期件数售价
供应商品
进价数量进货日期
product_name varchar(20) not null,
product_category varchar(20),
product_stock int not null
);
数据:
图 2-8 商品数据截图
2、营业员信息表建立及其数据:
SQL 语句:
create table assistant_info(
assistant_id varchar(20) primary key,
assistant_name varchar(20) not null,
assistant_gender varchar(20) not null,
assistant_phone varchar(20) not null
);
数据:
图 2-9 营业员数据截图
3、供货商信息表建立及其数据:
SQL 语句:
create table supplier_info(
supplier_id varchar(20) primary key,
supplier_name varchar(20) not null,
supplier_address varchar(50) not null,
supplier_linkman varchar(20) not null,
supplier_phone varchar(20) not null,
supplier_email varchar(20)
);
数据:
图 2-10 供应商数据截图
4、系统信息表建立及其数据:
SQL 语句:
create table system_info(
system_name varchar(20) primary key,
system_password varchar(20) not null
);
数据:
图 2-11 系统数据截图
5、营业员卖出商品信息表建立及其数据:
SQL 语句:
create table sale_product_info(
assistant_id varchar(20),
product_id varchar(20),
product_price float not null,
product_number int not null,
sale_date date not null,
constraint fk_assistant_info foreign key(assistant_id) references
assistant_info(assistant_id),
constraint fk_product_info foreign key(product_id) references
product_info(product_id),
constraint pk_assistant_product primary key(assistant_id,product_id)
);
数据:
图 2-12 卖出商品数据截图
6、供货商供应商品信息表建立及其数据:
SQL 语句:
create table supply_product_info(
supplier_id varchar(20),
product_id varchar(20),
product_bid float not null,
product_number int not null,
bid_date date,
constraint fk_supplier_info foreign key(supplier_id) references
supplier_info(supplier_id),
constraint fk_product2_info foreign key(product_id) references
product_info(product_id),
constraint pk_supplier_product primary key(supplier_id,product_id)
);
数据:
图 2-13 供应商品数据截图
3 系统各功能模块的详细设计
tomcat 与数据库连接
首先在 tomcat 官网中下载 tomcat 服务器并对其进行安装,并在环境变量中
设置 path 路径。然后在下载 SQL2000 连接的驱动 jar 包,并将其导入 tomcat 的
lib 文件夹中且同时在该系统工程中引入 jar 包。
然后建立一个 java 的 utilclass 类进行数据库与服务器相连接与其断开的程
序编写,具体程序语句如下:
package Util;
import ;
import ;
import ;
public final class DBUtil {
private DBUtil(){
}
static {
try {
("");
} catch (ClassNotFoundException e) {
();
}
}
public static Connection getConnection(){
Connection conn = null;
try {
conn =
("jdbc:sqlserver://localhost:1433;database=shopping","test","292211");
} catch (SQLException e) {
();
} finally{
return conn;
}
}
public static void closeConnection(Connection conn){
if(conn != null){
try {
();
} catch (SQLException e) {
();
}
}
}
}
此 java 类可实现系统与数据库的连接与断开,在后续的系统功能设置中可
直接引用该类中的方法即可。
用户登陆模块
为实现用户的登陆功能,此系统采用 MVC 模式将其分为三个层次以实现其
功能。
jsp 界面
运用 jsp 网页开发语言,进行用户登陆界面的设计。其可实现通过互联网直
接进行访问。
程序语句如下:
<%@ page language="java" import=".*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN">
<html>
<head>
<title>登录界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body >
<form action="" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" value="确认"/></td>
<td><input type="reset" value="取消"/></td>
</tr>
</table>
</form>
</body>
</html>
界面形式如下:
图 3-1 系统用户登陆界面图
DAO 方法类
为遵循 MVC 模式,将界面与具体实现方法与数据库分割开来,建立 DAO
类来实现界面调用数据库中的数据功能。
程序语句如下:
package dao;
import ;
import ;
import ;
import ;
import ;
// 登录方法
public SystemInfoBean login(SystemInfoBean systemInfo) {
// 定义空的返回值对象
SystemInfoBean system = null;
try {
// 获取连接对象
Connection conn = ();
// 创建 SQL 语句
String sql ="select * from system_info where system_name=? and
system_password=?";
PreparedStatement pstmt = (sql);
// 给 SQL 语句设值
(1, ());
(2, ());
//执行查询语句,得到 ResultSet 结果集
ResultSet rs = ();
if(()){
system = new SystemInfoBean();
((1));
((2));
}
// 关闭数据库连接
(conn);
} catch (Exception e) {
();
} finally {
return system;
}
}
}
javabean 方法类
Javabean 方法类主要实现调用数据库中各表的属性,采用封装的方法将各属
性封装成 bean 包,并通过 get 与 set 方法进行各属性的调用。
程序语句如下:
package bean;
public class SystemInfoBean {
private String systemInfo;
private String systemPassword;
public String getSystemInfo() {
return systemInfo;
}
public void setSystemInfo(String systemInfo) {
= systemInfo;
}
public String getSystemPassword() {
return systemPassword;
}
public void setSystemPassword(String systemPassword) {
= systemPassword;
}
}
servlet 方法类
Servlet 主要实现服务器的调用,以便实现完整的数据库中数据与 jsp 界面的
连接与其增删查改功能。
程序语句如下:
package servlet;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
("UTF-8");
// 获取登录界面输入的值
String username = ("username");
String password = ("password");
// 将值赋值给 SystemInfoBean 对象
SystemInfoBean systemInfo = new SystemInfoBean();
(username);
(password);
SystemInfoDAO dao = new SystemInfoDAO();
SystemInfoBean system = (systemInfo);
String path = "";
if(system != null){
HttpSession session = ();
// //将登录成功的信息传给主界面
("login_info", system);
path = "/";
}else{
("error_info", "用户名或密码错误,登录失败!");
path = "/";
}
//实现页面跳转,登录成功,则转到主界面,失败则重新回到登录界
面
RequestDispatcher reqDispatch = (path);
(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
(request, response);
}
}
注册新用户模块
类似于用户登录实现一样,首先设计用户注册的界面设置。因需要用的数据
库表为同一个表,因而其 javabean 包为同一个。因而只需对新用户注册的界面
与 DAO 类方法与 servlet 类进行设置即可。具体步骤与程序如下:
jsp 界面
程序语句如下:
<%@ page language="java" import=".*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN">
<html>
<head>
<title>注册界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body >
<h3>注册新用户</h3>
<form action="" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>输入密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type="password" name="confirmPassword"></td>
</tr>
<tr>
<td><input type="submit" value="确认"/></td>
<td><input type="reset" value="取消"/></td>
</tr>
</table>
</form>
</body>
</html>
界面如下:
图 3-2 用户注册界面图
DAO 方法类
程序语句如下:
public class SystemInfoDAO {
// 注册方法
public boolean regist(SystemInfoBean systemInfo) {
// 定义空的返回值对象
boolean flag = false;
try {
// 获取连接对象
Connection conn = ();
// 创建 SQL 语句
String sql = "insert into system_info
(system_name,system_password) values(?,?)";
PreparedStatement pstmt = (sql);
// 给 SQL 语句设值
(1, ());
(2, ());
// 执行 SQL 语句,并返回值
int count = ();
if (count > 0) {
flag = true;
}
// 关闭数据库连接
(conn);
} catch (Exception e) {
();
} finally {
return flag;
}
}
在 servlet 类中调用如上所示的注册方法,以实现将注册信息数据存入数据
库中。
servlet 类
因 MVC 模式是将模型,视图,控制器三者分开,因而每一个功能的实现均
需要一个 servlet 类方法。
程序语句如下:
package servlet;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class RegistServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
("UTF-8");
// 获取注册界面输入的值
String username = ("username");
String password = ("password");
// 将值赋值给 SystemInfoBean 对象
SystemInfoBean systemInfo = new SystemInfoBean();
(username);
(password);
SystemInfoDAO dao = new SystemInfoDAO();
boolean flag = (systemInfo);
String msg = "";
if (flag) {
msg = "注册成功";
} else {
msg = "注册失败";
}
("text/html;charset=UTF-8");
PrintWriter out = ();
("<h3 style='color:red'>" + msg + "</h3>");
("<a href=''>登录</a>");
();
}
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
(request, response);
}
}
主窗体界面
主窗体界面设计了三个主菜单:文件,数据管理,数据查询。文件菜单可以
实现注册新用户和退出功能;数据管理可对商品信息,营业员信息,供应商信息,
营业员卖出商品信息,供应商供应商品信息进行浏览与修改等操作;数据添加即
可对对商品信息,营业员信息,供应商信息,营业员卖出商品信息,供应商供应
商品信息进行添加操作;数据删除可对商品信息,营业员信息,供应商信息,营
业员卖出商品信息,供应商供应商品信息实现删除功能。
jsp 界面
程序语句如下:
<%@ page language="java" import=".*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN">
<html>
<head>
<title>登录界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body >
<label>${}欢迎访问</label>
<form action="" method="post">
<table>
<tr>
<th>文件</th>
<th>数据管理</th>
<th>数据查询</th>
<th>数据添加</th>
<th>数据删除</th>
</tr>
<tr>
<td><a href="">注册新用户</a></td>
<td><a href="">商品信息</a></td>
<td><a href="">查询供货商信息</a></td>
<td><a href="">添加供货商信息</a></td>
<td><a href="">删除供货商信息</a></td>
</tr>
<tr>
<td><a href="">退出</a></td>
<td><a href="">营业员信息</a></td>
<td><a href="">查询商品信息</a></td>
<td><a href="">添加商品信息</a></td>
<td><a href="">删除商品信息</a></td>
</tr>
<tr>
<td></td>
<td><a href="">供货商信息</a></td>
<td><a href="">查询商品交易信息</a></td>
<td><a href="">添加商品交易信息</a></td>
<td><a href="">删除商品交易信息</a></td>
</tr>
<tr>
<td></td>
<td><a href=""> 商 品 交 易 信 息
</a></td>
<td><a href="">查询营业员信息</a></td>
<td><a href="">添加营业员信息</a></td>
<td><a href="">删除营业员信息</a></td>
</tr>
</table>
</form>
</body>
</html>
界面如下:
图 3-2 用户注册界面图
数据管理(增、删、改)模块
本模块主要实现数据的查询,添加,删除,修改功能,鉴于每一个数据表
实现该功能的方法类似,因而在本文中只介绍营业员的具体操作步骤。
营业员信息查询管理
1、jsp 查询界面
因该系统较为简单,本文中只实现了通过主键进行营业员信息的查询。后续
将完善该系统功能,以实现其他字段的查询功能。
程序语句如下:
<%@ page language="java" import=".*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN">
<html>
<head>
<title>查询售货员界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body >
<form action="" method="post">
<table>
<tr>
<td>售货员ID:</td>
<td><input type="text" name="assistantid"></td>
</tr>
<tr>
<td><input type="submit" value="确认"/></td>
<td><input type="reset" value="重置"/></td>
</tr>
</table>
</form>
</body>
</html>
图 3-3 营业员信息查询界面图
2、javabean 包
将营业员的属性信息封装到 javabean 包中,并设置 set 与 get 方法以便进行信
息的调用。
程序语句如下:
package bean;
public class AssistantInfoBean {
private String assistantId;
private String assistantName;
private String assistantGender;
private String assistantPhone;
public String getAssistantId() {
return assistantId;
}
public void setAssistantId(String assistantId) {
= assistantId;
}
public String getAssistantName() {
return assistantName;
}
public void setAssistantName(String assistantName) {
= assistantName;
}
public String getAssistantGender() {
return assistantGender;
}
public void setAssistantGender(String assistantGender) {
= assistantGender;
}
public String getAssistantPhone() {
return assistantPhone;
}
public void setAssistantPhone(String assistantPhone) {
= assistantPhone;
}
}
3、servlet 包
为实现营业员的查询功能,建立 servlet 类以实现该功能。
程序语句如下:
package servlet;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
//显示查询营业员信息浏览窗体的Servlet
public class searchAssistantServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
("UTF-8");
// 获取查询营业员界面输入的值
String assistantid = ("assistantid");
//得到查询营业员信息
AssistantInfoDAO dao = new AssistantInfoDAO();
List<AssistantInfoBean> assistant =
(assistantid);
(());
//将assistant传给
HttpSession session = ();
("Assistant", assistant);
//页面跳转到
RequestDispatcher reqDispatch =
("/");
(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
(request, response);
}
}
4、DAO 类
为实现营业员信息数据的查询功能需要编写如下方法进行方法调用。
程序语句如下:
package dao;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
//查询营业员信息浏览窗体的DAO
public List<AssistantInfoBean> getassistantByID(String assistantId) {
List<AssistantInfoBean> assistant = new ArrayList<AssistantInfoBean>();
try{
Connection conn = ();
String sql = "SELECT * FROM assistant_info WHERE assistant_id
= ?";
PreparedStatement pstmt = (sql);
(1, assistantId);
ResultSet rs = ();
while(()){
AssistantInfoBean assistantInfo = new AssistantInfoBean();
(("assistant_id"));
(("assistant_name"));
(("assistant_gender"));
(("assistant_phone"));
(assistantInfo);
}
(conn);
}catch(Exception e){
();
}finally{
return assistant;
}
}
public boolean addassistant(AssistantInfoBean assistantInfo) {
// 定义空的返回值对象
boolean flag = false;
try {
// 获取连接对象
Connection conn = ();
// 创建SQL语句
String sql = "insert into assistant_info
(assistant_id,assistant_name,assistant_gender,assistant_phone) values(?,?,?,?)";
PreparedStatement pstmt = (sql);
// 给SQL语句设值
(1,());
(2,());
(3,());
(4,());
// 执行SQL语句,并返回值
int count = ();
if (count > 0) {
flag = true;
}
// 关闭数据库连接
(conn);
} catch (Exception e) {
();
} finally {
return flag;
}
}
5、营业员信息查询结果 jsp 界面
程序语句如下:
<%@ page language="java" import=".*" pageEncoding="gbk"%>
<%@ page import="bean.*" %>
<%@ taglib prefix="c" uri="
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN">
<html>
<head>
<title>显示营业员信息浏览窗体</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="">
-->
</head>
<body>
<table>
<tr>
<td>营业员ID</td>
<td>营业员姓名</td>
<td>性别</td>
<td>联系电话</td>
</tr>
<a href="">修改</a>
<c:forEach var="assistantInfo" items="${Assistant}">
<tr>
<td>${}</td>
<td>${}</td>
<td>${}</td>
<td>${}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
界面如下:
图 3-4 营业员信息查询结果界面图
营业员信息浏览管理
1、DAO 方法
程序语句如下:
// 浏览所有营业员, 显示营业员信息浏览窗体
public List<AssistantInfoBean> getAllAssistantInfo() {
// 定义空的返回值对象
List<AssistantInfoBean> list = new ArrayList<AssistantInfoBean>();
try {
// 获取连接对象
Connection conn = ();
// 创建SQL语句
String sql = "select * from assistant_info";
PreparedStatement pstmt = (sql);
// 执行SQL语句,并返回值
ResultSet rs = ();
while (()) {
AssistantInfoBean assistantInfo = new AssistantInfoBean();
(("assistant_id"));
(("assistant_name"));
(("assistant_gender"));
(("assistant_phone"));
(assistantInfo);
}
// 关闭数据库连接
(conn);
} catch (Exception e) {
();
} finally {
return list;
}
}
2、servlet 类
程序语句如下:
package servlet;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
//显示营业员信息浏览窗体的Servlet
public class scanAllAssistantInfoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
//得到所有营业员信息
AssistantInfoDAO dao = new AssistantInfoDAO();
List<AssistantInfoBean> list = ();
(());
//将list传给
HttpSession session = ();
("allAssistantInfo", list);
//页面跳转到
RequestDispatcher reqDispatch =
("/");
(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
(request, response);
}
}
3、jsp结果显示界面
程序语句如下:
<%@ page language="java" import=".*" pageEncoding="gbk"%>
<%@ page import="bean.*" %>
<%@ taglib prefix="c" uri="
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN">
<html>
<head>
<title>显示营业员信息浏览窗体</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="">
-->
</head>
<body>
<table>
<tr>
<td>营业员ID</td>
<td>营业员姓名</td>
<td>性别</td>
<td>联系电话</td>
</tr>
<a href="">修改</a>
<c:forEach var="assistantInfo" items="${Assistant}">
<tr>
<td>${}</td>
<td>${}</td>
<td>${}</td>
<td>${}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
浏览结果显示界面如下:
图 3-5 营业员信息浏览结果界面图
营业员信息添加管理
1、jsp 添加界面
程序语句如下:
<%@ page language="java" import=".*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN">
<html>
<head>
<title>添加营业员界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body >
<h3>添加商品交易情况</h3>
<form action="" method="">
<table>
<tr>
<td>营业员ID:</td>
<td><input type="text" name="assistantid"></td>
</tr>
<tr>
<td>营业员姓名:</td>
<td><input type="text" name="assistantname"></td>
</tr>
<tr>
<td>营业员性别:</td>
<td><input type="text" name="assistantgender"></td>
</tr>
<tr>
<td>联系电话:</td>
<td><input type="text" name="assistantphone"></td>
</tr>
<tr>
<td><input type="submit" value="确认"/></td>
<td><input type="reset" value="取消"/></td>
</tr>
</table>
</form>
</body>
</html>
界面如下:
图 3-6 营业员信息添加界面图
2、DAO 方法
程序语句如下:
public boolean addassistant(AssistantInfoBean assistantInfo) {
// 定义空的返回值对象
boolean flag = false;
try {
// 获取连接对象
Connection conn = ();
// 创建SQL语句
String sql = "insert into assistant_info
(assistant_id,assistant_name,assistant_gender,assistant_phone) values(?,?,?,?)";
PreparedStatement pstmt = (sql);
// 给SQL语句设值
(1,());
(2,());
(3,());
(4,());
// 执行SQL语句,并返回值
int count = ();
if (count > 0) {
flag = true;
}
// 关闭数据库连接
(conn);
} catch (Exception e) {
();
} finally {
return flag;
}
}
在 servlet 类中将调用如上的 addassistant 方法进行营业员数据的数据库插入功
能的实现。
3、servlet 类
程序语句如下:
package servlet;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class addAssistantServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
("UTF-8");
// 获取添加营业员信息输入的值
String assistantid = ("assistantid");
String assistantname = ("assistantname");
String assistantgender = ("assistantgender");
String assistantphone = ("assistantphone");
// 将值赋值给AssistantInfoBean对象
AssistantInfoBean assistantInfo = new AssistantInfoBean();
(assistantid);
(assistantname);
(assistantgender);
(assistantphone);
AssistantInfoDAO dao = new AssistantInfoDAO();
boolean flag = (assistantInfo);
String msg = "";
if (flag) {
msg = "添加成功";
} else {
msg = "添加失败";
}
("text/html;charset=UTF-8");
PrintWriter out = ();
("<h3 style='color:red'>" + msg + "</h3>");
("<a href=''>查询营业员信息</a>");
();
}
}
通过该servlet类来实现数据库的连接以及DAO中的插入数据方法,并在完成
操作后将数据库的关闭。
营业员信息修改管理
在实现对数据库查询后的界面上有一个修改的链接,点击该链接即可进入该
营业员数据修改的界面,然后可对其除主键营业员编号外的各属性值进行修改,
并将修改后的数据存入数据库中,覆盖之前数据。
1、jsp界面
程序语句如下:
<%@ page language="java" import=".*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN">
<html>
<head>
<title>修改营业员界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body >
<h3>修改商品交易情况</h3>
<form action="" method="">
<table><tr>
<td>营业员ID:</td>
<td><input type="text" name="assistantid"></td>
</tr>
<tr>
<td>营业员姓名:</td>
<td><input type="text" name="assistantname"></td>
</tr>
<tr>
<td>营业员性别:</td>
<td><input type="text" name="assistantgender"></td>
</tr>
<tr>
<td>联系电话:</td>
<td><input type="text" name="assistantphone"></td>
</tr><tr>
<td><input type="submit" value="确认"/></td>
<td><input type="reset" value="取消"/></td>
</tr>
</table>
</form>
</body>
</html>
界面如下:
图 3-7 营业员信息修改界面图
该修改只能实现除主键之外的其他数据修改,在完成数据修改之后确认即可
进入查询界面,可对修改的营业员数据进行查询以确认数据是否修改成功。
2、DAO方法
程序语句如下:
public Boolean updateAssistant(AssistantInfoBean assistantInfo){
Boolean flag = false;
try{
//获取连接对象
Connection conn = ();
String sql = "UPDATE assistant_info SET
assistant_name=?,assistant_gender=?,assistant_phone=? where assistant_id = ?";
PreparedStatement pstmt = (sql);
(1, ());
(2, ());
(3, ());
(4, ());
int count = ();
if(count > 0){
flag = true;
}
(conn);
}catch(Exception e){
();
}finally{
return flag;
}
}
3、servlet类
程序语句如下:
package servlet;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class updateAssistantServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
("UTF-8");
// 获取修改营业员信息输入的值
String assistantid = ("assistantid");
String assistantname = ("assistantname");
String assistantgender = ("assistantgender");
String assistantphone = ("assistantphone");
// 将值赋值给AssistantInfoBean对象
AssistantInfoBean assistantInfo = new AssistantInfoBean();
(assistantid);
(assistantname);
(assistantgender);
(assistantphone);
AssistantInfoDAO dao = new AssistantInfoDAO();
boolean flag = (assistantInfo);
String msg = "";
if (flag) {
msg = "修改成功";
} else {
msg = "修改失败";}
("text/html;charset=UTF-8");
PrintWriter out = ();
("<h3 style='color:red'>" + msg + "</h3>");
("<a href=''>查询营业员信息</a>");
();
}
}
在进行商品修改之后通过flag参数来对数据修改是否成功进行判断,如修改
成功即输出修改成功和营业员查询界面,修改失败则输出修改失败,可对其进行
再次修改。
修改运行结果如下:
图 3-8 营业员信息修改结果界面图
营业员信息删除管理
1、jsp删除界面
程序语句如下:
<%@ page language="java" import=".*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN">
<html>
<head>
<title>删除营业员界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body >
<h3>删除营业员信息</h3>
<form action="" method="">
<table>
<tr>
<td>营业员ID:</td>
<td><input type="text" name="assistantid"></td>
</tr>
<tr>
<td><input type="submit" value="确认"/></td>
<td><input type="reset" value="取消"/></td>
</tr>
</table>
</form>
</body>
</html>
界面如下:
图 3-9 营业员信息删除界面图
输入要删除的营业员的 ID 号,以进行数据库该数据的查询,然后按确认键
确定删除。
2、DAO方法
程序语句如下:
public boolean deleteassistant(AssistantInfoBean assistantInfo) {
// 定义空的返回值对象
boolean flag = false;
try {
// 获取连接对象
Connection conn = ();
// 创建SQL语句
String sql = "delete from assistant_info where assistant_id = ?";
PreparedStatement pstmt = (sql);
// 给SQL语句设值
(1,());
// 执行SQL语句,并返回值
int count = ();
if (count > 0) {
flag = true;
}
// 关闭数据库连接
(conn);
} catch (Exception e) {
();
} finally {
return flag;
}
}
3、servlet类
程序语句如下:
package servlet;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class deleteAssistantServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
("UTF-8");
// 获取添加营业员信息输入的值
String assistantid = ("assistantid");
// 将值赋值给AssistantInfoBean对象
AssistantInfoBean assistantInfo = new AssistantInfoBean();
(assistantid);
AssistantInfoDAO dao = new AssistantInfoDAO();
boolean flag = (assistantInfo);
String msg = "";
if (flag) {
msg = "删除成功";
} else {
msg = "删除失败";
}
("text/html;charset=UTF-8");
PrintWriter out = ();
("<h3 style='color:red'>" + msg + "</h3>");
("<a href=''>查询营业员信息</a>");
();
}
}
实现该servlet类后如删除成功则显示删除成功及查询营业员信息的链接,可
对该信息进行查询,如删除不成功则显示删除失败同时可选择对其进行再一次的
删除。
由于论文长度问题,本文只对其中的一个数据表进行增删查改等功能进行详
细描述,对于其他的数据表的操作的具体步骤及程序将在附录中给出。
4 课程设计总结
本次课设主要实现一个简易的商品销售信息管理系统网站,可通过网页的进
行进行用户登陆与注册,商品信息、营业员信息、供货商信息等的增删查改。但
不足的是,由于时间较为仓促,界面不够精美以及功能不够完善。在后续的时间
中,因对其进行进一步的修改,完成后续的一系列工作。
在本次课设中要感谢帮助过我的各位朋友们,不是你们的帮助,凭我一个人
的能力是无法在如此短的时间中完成本次课设的。同时也让我感受到了团队协作
的力量,一个人的力量是有限的,每个人都有自己擅长的一面也有自己不擅长的
一面,我们应该虚心向他人学习,提高自身能力。
参考文献
[1] 李军 张英芬 基于 JSP+SQLServer 创建在线购物系统的分析与设计
机 电 产 品 开 发 与 创 新 Development & Innovation of Machinery & Electrical
Products 2010 年 05 期
[2] 焦多勤 高校班级管理系统 JSP+SQL 的设计与实现 数字技术与应用
Digital Technology & Application, 2012 年 03 期
[3] 许宁 易蔬电子商务网站的设计与开发 中国科技信息 , China Science and
Technology Information, 2012 年 21 期