用户可以进行注册登陆系统,在用户的界面上,用户可以进行查看图店里的图书类别和所在类别下的图书,根据自己的需求可在订单那一栏添加订单购买自己喜欢的图书;
管理员可以用自己的账号登录到管理员的界面上对书店进行管理,管理员可实现对图书的添加,修改,查询,和删除功能,可以查看用户的到订单,修改和维护订单。添家客户的信息用以保存系统中用于统计。
在构造系统时,首先从需求出发构造数据库,然后再由数据库表结合需求划分系
统功能模块。这样,就把一个大的系统解成了几个小系统。这里把系统划分为了三个
模块:用户登录模块,管理员模块,用户购买模块。模块分别能够实现以下功能
(1)登录模块,实现登录功能,注册功能
(2)管理员模块,实现管理员对图书的添加修改和删除功能,对订单的添加修改和删除功能。
(3)用户购买模块,实现用户在界面上对图书的查看搜索,以及对自己喜欢的图书下订单。
管理员信息表
图书信息表
订单信息表
5.买家信息表
登陆界面
用户登陆及注册界面
图书信息查询
订单添加界面
管理员登陆界面
管理员对图书种类的维护
管理员添加图书
管理员查询和维护图书
管理员查看订单
买家信息维护
登陆相关功能代码
private void loginActionPerformed(ActionEvent evt) {
String userName=this.userNameTxt.getText();
String password=new String(this.passwordTxt.getPassword());
if(StringUtil.isEmpty(userName)){
JOptionPane.showMessageDialog(null, "用户名不能为空!");
return;
}
if(StringUtil.isEmpty(password)){
JOptionPane.showMessageDialog(null, "密码不能为空!");
return;
}
CUser cuser=new CUser(userName,password);
Connection con=null;
try {
con=dbUtil.getCon();
CUser currentCUser =cuserDao.login(con,cuser);
if(currentCUser!=null){
dispose();
new CMainFrm().setVisible(true);
}else{
JOptionPane.showMessageDialog(null, "用户名或者密码错误!");
}
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
注册相关功能代码
private void registrationActionPerformed(ActionEvent evt) {
String userName=this.userNameTxt.getText();
String password=this.passwordTxt.getText();
if(StringUtil.isEmpty(userName)){
JOptionPane.showMessageDialog(null, "用户名不能为空!");
return;
}
if(StringUtil.isEmpty(password)){
JOptionPane.showMessageDialog(null, "密码不能为空!");
return;
}
Registration registration= new Registration(userName,password);
Connection con= null;
try {
con=dbUtil.getCon();
int n= registrationDao.add(con, registration);
if(n==1){
JOptionPane.showMessageDialog(null, "注册成功!");
resetValue();
}else{
JOptionPane.showMessageDialog(null, "注册失败!");
}
}catch(Exception e) {
}finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
JOptionPane.showMessageDialog(null, "注册失败!");
}
}
}
图书添加事件处理
private void bookAddActionPerformed(ActionEvent evt) {
String bookName=this.bookNameTxt.getText();
String author=this.authorTxt.getText();
String price=this.priceTxt.getText();
String bookDesc=this.bookDescTxt.getText();
if(StringUtil.isEmpty(bookName)){
JOptionPane.showMessageDialog(null, "图书名称不能为空!");
return;
}
if(StringUtil.isEmpty(author)){
JOptionPane.showMessageDialog(null, "图书作者不能为空!");
return;
}
if(StringUtil.isEmpty(price)){
JOptionPane.showMessageDialog(null, "图书价格不能为空!");
return;
}
String sex="";
if(manJrb.isSelected()){
sex="男";
}else if(femaleJrb.isSelected()){
sex="女";
}
BookType bookType=(BookType) bookTypeJcb.getSelectedItem();
int bookTypeId=bookType.getId();
Book book=new Book(bookName,author, sex, Float.parseFloat(price) , bookTypeId, bookDesc);
Connection con=null;
try{
con=dbUtil.getCon();
int addNum=bookDao.add(con, book);
if(addNum==1){
JOptionPane.showMessageDialog(null, "图书添加成功!");
resetValue();
}else{
JOptionPane.showMessageDialog(null, "图书添加失败!");
}
}catch(Exception e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "图书添加失败!");
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
买家信息搜索事件处理
protected void consumerSerachActionPerformed(ActionEvent evt) {
String s_consumerName= this.s_consumerNameTxt.getText();
Consumer consumer=new Consumer();
consumer.setConsumerName(s_consumerName);
this.fillTable(consumer);
}
private void fillTable(Consumer consumer){
DefaultTableModel dtm=(DefaultTableModel) consumerTable.getModel();
dtm.setRowCount(0); // 设置成0行
Connection con=null;
try{
con=dbUtil.getCon();
ResultSet rs=consumerDao.list(con, consumer);
while(rs.next()){
Vector v=new Vector();
v.add(rs.getString("id"));
v.add(rs.getString("consumerName"));
v.add(rs.getString("sex"));
v.add(rs.getString("age"));
v.add(rs.getString("number"));
v.add(rs.getString("bookName"));
dtm.addRow(v);
}
}catch(Exception e){
e.printStackTrace();
}finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
买家信息修改事件处理
private void consumerUpdateActionEvet(ActionEvent evt) {
String id=idTxt.getText();
String consumerName=consumerNameTxt.getText();
String sex=sexTxt.getText();
String age=ageTxt.getText();
String number=numberTxt.getText();
String bookName=bookNameTxt.getText();
if(StringUtil.isEmpty(id)){
JOptionPane.showMessageDialog(null, "请选择要修改的记录");
return;
}
if(StringUtil.isEmpty(consumerName)){
JOptionPane.showMessageDialog(null, "购书者名称不能为空");
return;
}
if(StringUtil.isEmpty(age)){
JOptionPane.showMessageDialog(null, "年龄不能为空");
return;
}
if(StringUtil.isEmpty(number)){
JOptionPane.showMessageDialog(null, "联系方式不能为空");
return;
}
if(StringUtil.isEmpty(bookName)){
JOptionPane.showMessageDialog(null, "图书名称不能为空");
return;
}
if(StringUtil.isEmpty(sex)){
JOptionPane.showMessageDialog(null, "性别不能为空");
return;
}
Consumer consumer=new Consumer(Integer.parseInt(id),consumerName,sex,age,number,bookName);
Connection con=null;
try {
con=dbUtil.getCon();
con=dbUtil.getCon();
int modifyNum=consumerDao.update(con, consumer);
if(modifyNum==1){
JOptionPane.showMessageDialog(null, "修改成功");
this.resetValue();
this.fillTable(new Consumer());
}else{
JOptionPane.showMessageDialog(null, "修改失败");
}
}catch(Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "修改失败");
}finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}