扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
真像楼上说的,15分如果手头上没现成的代码,是不会给你写的。
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的巩留网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
网上书店管理系统功能模块划分
【实例下载】
根据需求分析与系统功能设计目标,结合实际情况本系统功能模块设计分为如下几个模块:
1.主页:在这里我们可以看见本系统的主要功能和信息。
2.用户注册:在这里我们可以注册我们的基本信息,其中电话和Email是比较重要的,因为我们需要对这些信息进行处理,以方便用户的付款和邮购。
3.用户登陆:为了方便用户的付款,邮购和管理,我们需要变成会员后才可以进行消费。
4.书目浏览:成功登陆后的用户可以分页浏览图书书目,并将想要的图书提交到填写订单页面。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登录页面”。
5.订购图书:成功登陆的用户可以在该页面定购所需要的图书。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
6.查看订单:成功登陆的用户可以在该页修改已经订购的图书。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
7.修改订单:成功登陆的用户可以在该页修改或删除已经订购的图书。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
8.书目查询:成功登陆的用户可以在该页查找自己需要的图书。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
9.修改密码:成功登陆的用户可以在该页修改自己的密码。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
10.修改个人信息:成功登陆的用户可以在该页修改自己当初注册时的信息。如果用户还没有注册就直接进入或者没有成功登陆就进入页面,将被连接到“用户登陆页面”。
11.留言板:成功登录的用户可以在该页留言。
12.管理员:查看用户订单,查看用户信息,并根据用户信息和用户订单对商品进行发派。
开发环境:MyEclipse
Web服务器:Tomcat
数据库:MySQL
连接数据库的典型步骤
第一步:加载正确的数据库驱动程序
第二步,定义所要连接数据库的地址
String ODBCURL=“jdbc:odbc:dbName”;
String oracleURL= "jdbc:oracle:thin:@host:port:dbName“;
String mysqlURL= "jdbc:mysql:// host:port/dbName“;
String sqlURL=“jdbc:microsoft:sqlserver://host:1433;DatabaseName=dbName”;
第三步,建立与数据库的连接
DriverManager.getConnection(oracleURL,
username,
password);
第四步,创建语句对象
Statement statement = connection.createStatement();
第五步,声明SQL语句,并将该语句通过Statement对象提交给服务器进行执行。
Stringsql= “SELECT * FROM ONTACT_TABLE”;
ResultSet resultSet=statement.executeQuery(sql);
该语句将sql命令提交给数据库服务器进行执行,并将执行结果存储在ResultSet对象中进行执行。
Statement接口主要有如下三个方法:
1. ResultSet executeQuery(String sql)
用于执行查询语句,返回 ResultSet结果集(一个二维表)
2. int executeUpdate(String sql)
用于执行添加、删除或修改操作,返回被更新记录的条数
3. boolean execute(String sql)
执行参数部分的SQL语句;
当SQL语句的执行结果是一个ResultSet结果集时,本方法返回true;并可以通过StatementgetResultSet()方法得到返回的结果集
当SQL语句执行后没有返回的结果集时,该方法返回false
第六步:对查询结果进行分析
while(resultSet.next()){
name =resultSet.getString(1);
phone =resultSet.getString(2);
System.out.println(name+","+phone);
}
第七步,关闭打开的资源
resultSet.close();
statement.close();
connection.close();
将打开的资源关闭。
注意:资源关闭的顺序和打开的顺序恰恰相反。
主界面:menu.java
import javax.swing.*;import java.awt.event.*;import java.sql.*;import java.awt.*;public class menu extends JFrame implements ActionListener { JMenuBar menubar = new JMenuBar(); JMenu meArray[] = { new JMenu("常用功能"), new JMenu("个人中心"), new JMenu("系统维护"), new JMenu("帮助") }; JMenuItem item[] = { new JMenuItem("浏览图书",new ImageIcon("image/browse.jpg")), new JMenuItem("查找图书",new ImageIcon("image/query.jpg")), new JMenuItem("我的空间",new ImageIcon("image/user.jpg")),new JMenuItem("登录",new ImageIcon("image/login.jpg")), new JMenuItem("注册",new ImageIcon("image/key.jpg")), new JMenuItem("后台管理",new ImageIcon("image/admin.jpg")), new JMenuItem("帮助信息",new ImageIcon("image/help.jpg")) }; gaintb jsp; JScrollPane JSP; JPanel jpl; JLabel bgimg=new JLabel(new ImageIcon("image\\MAIN.jpg"));//开始界面 String namep=null; CardLayout card=new CardLayout(); JPanel cardPanel=new JPanel(); JLabel titback=new JLabel("选择还书名称"); JButton suback=new JButton("还书"); JTextField bid=new JTextField(); String sql=""; connectdt jdbc = new connectdt();//连接数据库类 Connection conn = jdbc.conn; Statement stmt = jdbc.stmt; public menu(String p1) { namep=p1; init(); cardPanel.add(bgimg); add(cardPanel); jsp = new gaintb("books"); JSP = jsp.rjsp(); JSP.setBounds(0, 0, 800, 550); cardPanel.add(JSP,"browse"); if(namep!=null){ zone cp6=new zone(namep); jpl=cp6.gainpl(); suback.setBounds(580, 440, 80, 30); titback.setBounds(400, 440, 100, 30); bid.setBounds(500, 440, 50, 30); jpl.add(suback); jpl.add(titback); jpl.add(bid); suback.addActionListener(this); bid.addActionListener(this); cardPanel.add(jpl,"zone"); card.show(cardPanel,"zone"); if(cp6.gainfine()0){ JOptionPane.showMessageDialog(null, "请先交纳罚款"); return; } } setLocation(250, 70); setVisible(true); setSize(800, 600); setDefaultCloseOperation(EXIT_ON_CLOSE); setResizable(false); } public void init() { cardPanel.setLayout(card); setTitle("图书管理系统"); meArray[0].add(item[0]); meArray[0].add(item[1]); meArray[1].add(item[2]); meArray[1].add(item[3]); meArray[1].add(item[4]); meArray[2].add(item[5]); meArray[3].add(item[6]); for (int i = 0; i item.length; i++) { item[i].addActionListener(this); } for (int i = 0; i meArray.length; i++) { menubar.add(meArray[i]); } setJMenuBar(menubar); } public void actionPerformed(ActionEvent e) { try { if (e.getSource() == item[0]) {//浏览图书 card.show(cardPanel,"browse"); } else if (e.getSource() == item[1]) {//查找图书 new select_borrow(namep); } else if (e.getSource() == item[2]) {//空间 if(namep==null){ JOptionPane.showMessageDialog(null, "您还未登录呢"); return; }else{ card.show(cardPanel,"zone"); } } else if (e.getSource() == item[3]) {//登录 new login("readers","name","code","用户登录"); dispose(); }else if(e.getSource()==item[4]){//注册 new user_regist(); }else if(e.getSource()==item[5]){//后台 new login("admindt","username","password","管理员登录"); dispose(); } else if(e.getSource()==item[6]){//帮助 new menu_help(); }else if(e.getSource()==suback){//还书 String temp=bid.getText(); if(temp.equals("")){ JOptionPane.showMessageDialog(null, "输入不能为空"); return; } sql="select * from borrow where book='"+temp+"'"; ResultSet rs = stmt.executeQuery(sql); if(!rs.next()){ JOptionPane.showMessageDialog(null, "输入不存在"); return; } sql="delete from borrow where book='"+temp+"'"; stmt.executeUpdate(sql); sql="update books set STOCK=STOCK+1 where TITLE='"+temp+"';"; stmt.executeUpdate(sql); sql=""; JOptionPane.showMessageDialog(null, "还书成功"); } } catch (Exception ee) { ee.printStackTrace(); } }}
上面是主菜单的完整的代码着重介绍布局思想和动作监听
在public menu(){ }里面
setLocation(250, 70);//设置位置,250是从屏幕左边开始向右移动250像素,70是从上往下移动70像素setVisible(true);//设置窗口可见setSize(800, 600);//设置窗口大小为800宽600高setDefaultCloseOperation(EXIT_ON_CLOSE);//设置关闭窗口为关闭所有setResizable(false);//不可调整窗口大小
打字不易,望采纳,谢谢
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流