基于JSP+Servlet+JDBC药品进销存管理系统

64 阅读5分钟

药品进销存管理信息系统

项目简介

本系统是一个基于JSP+Servlet+JDBC+MySQL8的药品进销存管理系统,实现了药品信息管理、入库、销售、退货、库存管理、数据统计、操作日志、用户权限管理等功能。

技术栈

  • 前端: JSP, HTML, CSS, JavaScript
  • 后端: Servlet, JDBC
  • 数据库: MySQL 8.0
  • 服务器: Tomcat 8.5+
  • 开发工具: Eclipse/IDEA
  • JDK版本: JDK 1.8+

功能模块

1. 用户权限管理

  • 用户登录/退出
  • 用户管理(管理员)
  • 角色权限控制(管理员、普通用户)
  • 修改密码

2. 药品管理

  • 药品信息维护(增删改查)
  • 药品分类管理
  • 药品搜索

3. 供应商管理

  • 供应商信息维护
  • 供应商启用/禁用

4. 库存管理

  • 实时库存查询
  • 库存预警(低于预警值自动提醒)
  • 库存统计

5. 药品入库

  • 入库单创建
  • 入库明细管理
  • 自动更新库存

6. 药品销售

  • 销售单创建
  • 销售明细管理
  • 优惠金额计算
  • 自动扣减库存

7. 退货管理

  • 退货单创建
  • 退货明细管理
  • 自动增加库存

8. 数据统计

  • 首页数据看板
  • 销售统计报表
  • 入库统计报表

9. 操作日志

  • 记录所有关键操作
  • 日志查询和筛选

环境配置

1. 开发环境要求

  • JDK 1.8 或更高版本
  • MySQL 8.0
  • Tomcat 8.5 或更高版本
  • Eclipse 或 IntelliJ IDEA

2. 数据库配置

创建数据库
mysql -u root -p

执行 database.sql 文件创建数据库和表:

source D:/eclipse-workspace/yaopin/database.sql

或在MySQL命令行中执行SQL文件内容。

修改数据库连接配置

编辑 src/db.properties 文件,修改数据库连接信息:

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/yaopin_db?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowPublicKeyRetrieval=true
jdbc.username=root
jdbc.password=你的数据库密码

3. 导入MySQL驱动

下载MySQL JDBC驱动(mysql-connector-java-8.x.x.jar),将其放置到:

  • WebContent/WEB-INF/lib/ 目录下

下载地址: dev.mysql.com/downloads/c…

选择 Platform Independent 版本下载。

4. Eclipse 项目导入

方式一:导入为动态Web项目
  1. 打开 Eclipse
  2. File → Import → Existing Projects into Workspace
  3. 选择项目目录 D:\eclipse-workspace\yaopin
  4. 点击 Finish
方式二:新建动态Web项目
  1. File → New → Dynamic Web Project
  2. 项目名称:yaopin
  3. 将源代码复制到项目对应目录

5. 配置Tomcat

  1. 在 Eclipse 中配置 Tomcat 服务器

    • Window → Preferences → Server → Runtime Environments
    • 添加 Tomcat 8.5 或更高版本
  2. 将项目添加到 Tomcat

    • 右键项目 → Run As → Run on Server
    • 选择配置好的 Tomcat 服务器

项目结构

yaopin/
├── src/
│   ├── com/yaopin/
│   │   ├── dao/              # 数据访问层
│   │   │   ├── UserDao.java
│   │   │   ├── MedicineDao.java
│   │   │   ├── SupplierDao.java
│   │   │   ├── PurchaseDao.java
│   │   │   ├── SaleDao.java
│   │   │   ├── ReturnDao.java
│   │   │   └── OperationLogDao.java
│   │   ├── model/            # 实体类
│   │   │   ├── User.java
│   │   │   ├── Medicine.java
│   │   │   ├── Supplier.java
│   │   │   ├── Purchase.java
│   │   │   ├── Sale.java
│   │   │   ├── ReturnOrder.java
│   │   │   └── OperationLog.java
│   │   ├── servlet/          # 控制层
│   │   │   ├── UserServlet.java
│   │   │   ├── MedicineServlet.java
│   │   │   ├── SupplierServlet.java
│   │   │   ├── PurchaseServlet.java
│   │   │   ├── SaleServlet.java
│   │   │   ├── ReturnServlet.java
│   │   │   ├── StatisticsServlet.java
│   │   │   └── LogServlet.java
│   │   ├── filter/           # 过滤器
│   │   │   ├── CharacterEncodingFilter.java
│   │   │   └── LoginFilter.java
│   │   └── util/             # 工具类
│   │       ├── DBUtil.java
│   │       └── StringUtil.java
│   └── db.properties         # 数据库配置
├── WebContent/
│   ├── WEB-INF/
│   │   ├── web.xml          # Web配置文件
│   │   └── lib/             # 第三方库(放置MySQL驱动)
│   ├── css/
│   │   └── style.css        # 样式文件
│   ├── js/
│   │   └── common.js        # 公共JS
│   ├── common/
│   │   └── sidebar.jsp      # 侧边栏组件
│   ├── login.jsp            # 登录页面
│   ├── index.jsp            # 首页
│   ├── medicine_*.jsp       # 药品管理相关页面
│   ├── user_*.jsp           # 用户管理相关页面
│   ├── purchase_*.jsp       # 入库管理相关页面
│   ├── sale_*.jsp           # 销售管理相关页面
│   └── log_list.jsp         # 日志页面
└── database.sql             # 数据库脚本

部署步骤

1. 导入项目

将项目导入到 Eclipse 或 IDEA 中。

2. 配置数据库

  • 执行 database.sql 创建数据库和表
  • 修改 src/db.properties 中的数据库连接信息

3. 添加MySQL驱动

  • 下载 mysql-connector-java-8.x.x.jar
  • 放置到 WebContent/WEB-INF/lib/ 目录

4. 配置Tomcat

  • 在IDE中配置Tomcat服务器
  • 将项目部署到Tomcat

5. 启动项目

默认账号

系统初始化后会自动创建以下账号:

用户名密码角色说明
adminadmin123管理员拥有所有权限
useruser123普通用户基本操作权限

注意:首次登录后请及时修改默认密码!

功能说明

药品入库流程

  1. 进入"药品入库"菜单
  2. 点击"新增入库单"
  3. 选择供应商、填写入库日期
  4. 添加入库明细(选择药品、数量、进价等)
  5. 系统自动计算总金额
  6. 保存后自动更新药品库存

药品销售流程

  1. 进入"药品销售"菜单
  2. 点击"新增销售单"
  3. 填写客户信息(可选)
  4. 添加销售明细(选择药品、数量、售价)
  5. 系统自动检查库存是否充足
  6. 可设置优惠金额
  7. 保存后自动扣减库存

库存预警

  • 当药品库存低于或等于预警数量时,系统会在药品列表中标记预警
  • 可通过"库存预警"菜单查看所有库存不足的药品
  • 建议定期查看库存预警,及时补货

常见问题

1. 数据库连接失败

  • 检查MySQL服务是否启动
  • 检查 db.properties 中的配置是否正确
  • 检查MySQL驱动是否正确放置

2. 页面乱码

  • 确保所有JSP文件编码为UTF-8
  • 检查Tomcat的server.xml配置:URIEncoding="UTF-8"

3. 无法访问页面

  • 检查Tomcat是否正常启动
  • 检查项目是否正确部署
  • 检查访问路径是否正确

4. 权限不足

  • 某些功能(如用户管理)仅管理员可访问
  • 使用admin账号登录

注意事项

  1. 生产环境部署

    • 修改默认密码
    • 使用强密码策略
    • 配置数据库备份策略
    • 启用HTTPS
  2. 性能优化

    • 对于大数据量,建议添加分页功能
    • 可考虑添加数据库连接池(如C3P0、Druid)
    • 添加缓存机制
  3. 安全建议

    • 密码建议使用MD5或SHA加密存储
    • 添加SQL注入防护
    • 添加XSS攻击防护
    • 定期备份数据库

操作日志.png

登录.png

供应商编辑.png

供应商列表.png

库存预警列表.png

入库列表.png

入库新增.png

数据统计.png

退货列表.png

退货新增.png

销售列表.png

销售新增.png

修改密码.png

药品编辑.png

药品管理列表.png

用户编辑.png

用户列表.png

主页.png