当前位置:首页 » 《资源分享》 » 正文

Java实现网上书店管理系统(idea+MySQL+navicat)

91 人参与  2022年06月29日 21:28  分类 : 《资源分享》  评论

点击全文阅读


最近一直在做网上书店管理系统,现在这个项目已基本具有一个图书管理系统的雏形,实现了数据的增删改查功能。本项目采用swing技术开发,使用数据库存放具体数据,现在做一个总结,供学习参考!在这里插入图片描述


文章目录

1. 开发工具2.数据库设计3. 项目功能设计1.登录界面设计2.图书信息维护界面3.图书信息查询界面4.图书销售信息界面5.项目结构 4.总结

1. 开发工具

本项目采用idea+MySQL开发,使用数据库可视化工具navicat管理数据。其中用到的MySQL版本是8.0。

在这里插入图片描述


2.数据库设计

数据库中共维护了四个关系表:
在这里插入图片描述

管理员信息表:
在这里插入图片描述
订单表信息:
在这里插入图片描述
图书信息表:
在这里插入图片描述

进货信息表:
在这里插入图片描述


连接数据库:

package jdbc;import java.text.SimpleDateFormat;import java.util.Calendar;import java.sql.*;/** *数据库管理类 */public class ConnectionManager {    //连接数据库的四大必需属性    private static final String driver = "com.mysql.cj.jdbc.Driver";    private static final String url = "jdbc:mysql://localhost:3306/book-management?useSSL=false&serverTimezone=Asia/Shanghai";    private static final String user = "root";    private static final String psd = "abc123";        //静态块加载驱动    static {        try {            Class.forName(driver);            System.out.println("加载驱动成功!");        } catch (ClassNotFoundException e) {            e.printStackTrace();            System.out.println("加载驱动失败!");        }    }        //返回一个连接对象    public static Connection getConnection() {        Connection connection = null;        try {            connection = DriverManager.getConnection(url, user, psd);//            System.out.println("连接数据库成功");        } catch (SQLException e) {            e.printStackTrace();        }        return connection;    }

使用jdbc技术连接数据库,记得下载驱动包!

创建数据库关系表格:

DROP TABLE IF EXISTS `book_stack`;CREATE TABLE `book_stack`  (  `ISBN` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'ISBN码',  `bookname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '书名',  `author` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作者',  `num` int(11) NULL DEFAULT NULL COMMENT '数量',  `markprice` decimal(10, 2) NULL DEFAULT NULL COMMENT '标价',  PRIMARY KEY (`ISBN`) USING BTREE,  INDEX `bookname`(`bookname`) USING BTREE,  INDEX `num`(`num`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;

3. 项目功能设计

1.登录界面设计

在这里插入图片描述

2.图书信息维护界面

在这里插入图片描述

3.图书信息查询界面

在这里插入图片描述

4.图书销售信息界面

在这里插入图片描述

此系统实现了对图书信息的增删改查功能,以及对图书订单的相关操作。已基本完善相关功能,下面只对部分代码做一个展示,供初学者学习参考:

package frame;import jdbc.ConnectionManager;import model.Manager;import javax.swing.*;import javax.swing.border.EmptyBorder;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;import javax.swing.text.Document;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import java.sql.SQLException;public class Login extends JFrame {private JPanel contentPane;private JTextField jt_user;private JPasswordField jt_psw;public static Jrame2 jrame;private final JPanel panel_3 = new JPanel();public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {Login frame = new Login();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/** * Create the frame. */public Login() {setBackground(new Color(224, 255, 255));setIconImage(Toolkit.getDefaultToolkit().getImage(Login.class.getResource("/img/线性图书 (1).png")));setTitle("网上书店管理系统");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 610, 377);contentPane = new JPanel();contentPane.setBackground(SystemColor.menu);contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JPanel panel = new JPanel();panel.setBackground(SystemColor.menu);panel.setBounds(10, 25, 576, 81);contentPane.add(panel);panel.setLayout(null);JLabel lblNewLabel = new JLabel("Welcome to use the System!");lblNewLabel.setIcon(new ImageIcon(Login.class.getResource("/img/welcome.png")));lblNewLabel.setBounds(73, 25, 435, 34);lblNewLabel.setForeground(new Color(0, 0, 0));lblNewLabel.setFont(new Font("宋体", Font.BOLD, 29));panel.add(lblNewLabel);JPanel panel_1 = new JPanel();panel_1.setBackground(SystemColor.menu);panel_1.setBounds(10, 116, 576, 60);contentPane.add(panel_1);panel_1.setLayout(null);JLabel lblNewLabel_1 = new JLabel("账号:");lblNewLabel_1.setBounds(96, 5, 98, 32);lblNewLabel_1.setIcon(new ImageIcon(Login.class.getResource("/img/账号 (1).png")));lblNewLabel_1.setFont(new Font("宋体", Font.BOLD, 20));panel_1.add(lblNewLabel_1);jt_user = new JTextField();jt_user.setBounds(199, 6, 281, 30);jt_user.setFont(new Font("宋体", Font.BOLD, 20));panel_1.add(jt_user);jt_user.setColumns(25);JLabel mess1 = new JLabel("");mess1.setFont(new Font("宋体", Font.PLAIN, 14));mess1.setForeground(Color.RED);mess1.setBounds(199, 38, 125, 24);panel_1.add(mess1);JPanel panel_1_1 = new JPanel();panel_1_1.setBackground(SystemColor.menu);panel_1_1.setBounds(10, 186, 576, 60);contentPane.add(panel_1_1);panel_1_1.setLayout(null);JLabel lblNewLabel_1_1 = new JLabel("密码:");lblNewLabel_1_1.setBounds(97, 10, 98, 32);lblNewLabel_1_1.setIcon(new ImageIcon(Login.class.getResource("/img/密码 (7).png")));lblNewLabel_1_1.setFont(new Font("宋体", Font.BOLD, 20));panel_1_1.add(lblNewLabel_1_1);jt_psw = new JPasswordField();jt_psw.setBounds(201, 5, 280, 32);jt_psw.setFont(new Font("宋体", Font.BOLD, 15));jt_psw.setColumns(25);panel_1_1.add(jt_psw);JLabel mess2 = new JLabel("");mess2.setForeground(Color.RED);mess2.setFont(new Font("宋体", Font.PLAIN, 14));mess2.setBounds(201, 36, 125, 24);panel_1_1.add(mess2);JPanel panel_2 = new JPanel();panel_2.setBackground(SystemColor.menu);panel_2.setBounds(10, 270, 576, 60);contentPane.add(panel_2);panel_2.setLayout(null);JButton jb_reset = new JButton("重置");jb_reset.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//重置输入框jt_user.setText("");jt_psw.setText("");}});jb_reset.setIcon(new ImageIcon(Login.class.getResource("/img/重置.png")));jb_reset.setFont(new Font("宋体", Font.BOLD, 17));jb_reset.setBounds(113, 10, 97, 23);panel_2.add(jb_reset);JButton jb_login = new JButton("登录");jb_login.setIcon(new ImageIcon(Login.class.getResource("/img/登录统计.png")));jb_login.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//获取账号和密码String userString=jt_user.getText();char[] a=jt_psw.getPassword();String pswString=String.valueOf(a);//查询是否匹配String sql="select * from manager where user=?";if (jt_user.getText().equals("")) {mess1.setText("请输入账号:");}else {try {ResultSet set=ConnectionManager.query(sql, new Object[] {userString});if(set.next()) {//找到用户String user=set.getString("user");String psw=set.getString("password");System.out.println(user+psw);//判断密码if (pswString.equals("")) {mess2.setText("请输入密码!");}else if (psw.equals(pswString)) {//登录成功System.out.println("登录成功!");//打开新窗口    jrame=new Jrame2(new Manager(userString, pswString));//关闭当前dispose();jrame.setVisible(true);}else {System.out.println("密码输入错误!");mess2.setText("密码输入错误!");}}else {System.out.println("账号不存在!");mess1.setText("该账号不存在!");}} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}});//动态清零Document dt=jt_user.getDocument();dt.addDocumentListener(new DocumentListener() {@Overridepublic void removeUpdate(DocumentEvent e) {// TODO Auto-generated method stubmess1.setText("");mess2.setText("");}@Overridepublic void insertUpdate(DocumentEvent e) {// TODO Auto-generated method stubmess1.setText("");mess2.setText("");}@Overridepublic void changedUpdate(DocumentEvent e) {// TODO Auto-generated method stubmess1.setText("");mess2.setText("");}});jb_login.setFont(new Font("宋体", Font.BOLD, 17));jb_login.setBounds(356, 10, 97, 23);panel_2.add(jb_login);}}

5.项目结构

以下是项目此项目的结构:
在这里插入图片描述


4.总结

在互联网的快速发展的今天,电脑的普及为人们适应快速的生活节奏提供了条件。电子商务的概念也随之产生。相比传统的零售业务,电子商务不管是在地域上、时间上还是经济上都优于传统业务,但因其以开放的互联网为基础,存在一定的局限性。随着互联网技术的进一步发展,电子商务正以一种惊人的速度发展着。


通过建立网上书店购物系统,可以提高企业的生产效率,降低经营成本,优化资源配置,从而实现企业的利润最大化由。于网上图书交易打破了图书经销的规则及图书经营模式,越来越的网上书店的出现,要想很好的发展下去,就需要开发一套行之有效的网上图书交易系统。


本项目采用Java swing技术开发,对于学习Java编程和刚学习数据库系统的初学者来说,是一个练手的好项目。在项目开发时遇到了很多的问题,在解决完问题以后对深入理解Java面向对象编程有很大的帮助,虽然GUI技术现在没有很大的市场,甚至很多初学者放弃学习,但是利用GUI技术编程的过程对于提高编程兴趣,理解Java编程有很大的作用。

谢谢大家!


点击全文阅读


本文链接:http://zhangshiyu.com/post/42119.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 天下所有女子都爱慕英雄,更爱慕那些从天而降救了自己的英雄。《明月揽君怀》
  • 《黑雪花》司诀宋淮月完结免费阅读(司诀宋淮月)全文阅读
  • 《完美重生》宋承与沈清怡热门小说_宋承与沈清怡全文阅读
  • 半路温柔崔致颜茴全本小说_(半路温柔)全文阅读
  • ARM架构的大发展不仅是芯片行业以及智能计算行业的一个机遇,也是当前我们所推动的国产替代浪潮的一个战略机遇。
  • 《指导意见》提出,着力打造人工智能重大场景。提升人工智能场景创新能力。
  • 拍照:一加IMX766有绿厂多年的优化,拍照更强;红米用的是HM6传感器,虽是一亿像素,但底小。
  • 8月11日晚上,小米集团创始人、董事长雷军进行了2022年度演讲,并发布了小米旗下一系列新产品和新技术。
  • 最新一代 DLZ-HV-200 型高效等离子体点火及稳燃系统近日在国家能源集团江西神华九江发电公司 2 号机组成功运行
  • 《指导意见》提出,着力打造人工智能重大场景。提升人工智能场景创新能力。加快推动人工智能场景开放
  • 8月11日,在雷军2022年度演讲中,小米发布全尺寸人形仿生机器人“CyberOne”,内部昵称“铁大”。
  • 《意见》指出,场景创新是以新技术的创造性应用为导向,以供需联动为路径,实现新技术迭代升级和产业快速增长的过程。
  • 赞助商广告

    关于我们 | 我要投稿 | 网站收录 | 免费二级域名 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备12007198号-1