《Java Web 期末项目分享:MVC+DBUtils+c3p0 玩转数据库增删改查》——第一弹

一、项目结构搭建(MVC 分层)

在 IDEA 中创建 Web 项目,建立以下目录结构:

复制代码
项目名
├─ src/main/java
│  ├─ com.xxx.entity       // Model层:实体类
│  ├─ com.xxx.dao          // Model层:数据访问接口
│  ├─ com.xxx.dao.impl     // Model层:数据访问实现
│  ├─ com.xxx.service      // 业务逻辑层接口
│  ├─ com.xxx.service.impl // 业务逻辑层实现
│  └─ com.xxx.servlet      // Controller层:Servlet
├─ web
│  ├─ login.jsp            // View层:登录页
│  ├─ index.jsp            // View层:主页面(显示info列表)
│  ├─ add.jsp              // View层:新增页面
│  ├─ edit.jsp             // View层:修改页面
│  └─ WEB-INF
│     ├─ lib               // 存放Jar包
│     └─ web.xml           // 项目配置文件
└─ c3p0-config.xml         // c3p0连接池配置文件(放src目录)

三、核心模块实现

1. 基础配置

  • c3p0 配置 :编写c3p0-config.xml,配置 MySQL 连接信息(驱动、URL、用户名、密码);
  • web.xml 配置 :配置 Servlet 映射、欢迎页(比如默认跳转到login.jsp)、Session 超时时间。

2. Model 层实现

  • 实体类(Info.java) :对应info表字段,编写属性、getter/setter 方法;
  • DAO 层
    • InfoDao接口,定义增删改查方法(addInfodeleteInfoupdateInfoqueryInfo等);
    • InfoDaoImpl实现类,用 DBUtils 的QueryRunner(基于 c3p0 数据源)实现接口方法;
  • Service 层
    • InfoService接口,封装 DAO 方法;
    • InfoServiceImpl实现类,调用 DAO 层完成业务逻辑。

3. Controller 层(Servlet)

  • LoginServlet
    1. 接收登录页面的用户名 / 密码参数;
    2. 调用 Service 层验证(查询 info 表中是否存在该用户);
    3. 验证成功:用 Session 保存用户信息,跳转index.jsp;失败:提示错误并返回登录页;
    4. 可选:用 Cookie 保存用户名(实现 "记住我" 功能)。
  • InfoListServlet
    1. 检查 Session 是否有登录信息(无则跳登录页);
    2. 调用 Service 查询 info 表所有数据,存入 request;
    3. 转发到index.jsp显示列表。
  • AddInfoServlet:接收 add.jsp 的表单数据,调用 Service 新增记录,重定向到 InfoListServlet。
  • DeleteInfoServlet:接收要删除的 id 参数,调用 Service 删除记录,重定向到 InfoListServlet。
  • EditInfoServlet
    1. 接收 id 参数,查询该记录信息,存入 request 并转发到edit.jsp
    2. 接收 edit.jsp 的修改数据,调用 Service 更新记录,重定向到 InfoListServlet。
  • QueryInfoServlet :接收查询条件参数,调用 Service 按条件查询,转发到index.jsp显示结果。

4. View 层(JSP 页面)

(1)login.jsp:编写登录表单,提交到 LoginServlet;可读取 Cookie 自动填充用户名。

(2)index.jsp

  • 显示 info 表数据列表(用 JSTL/EL 表达式遍历 request 中的数据);
  • 增加 "新增" 按钮(跳 add.jsp)、每条记录的 "修改""删除" 按钮(对应 Servlet);
  • 增加查询表单,提交到 QueryInfoServlet。

(3)add.jsp/edit.jsp:编写表单,提交到对应 Servlet,实现数据录入 / 回显。

四、测试与优化

1、功能测

启动 Tomcat,测试登录、增删改查是否正常(检查数据库数据变化、页面显示是否正确);

2、异常处

添加空值判断、数据库操作异常捕获,给出友好提示;

3、Session 验

确保未登录时直接访问 Servlet 会跳转到登录页。

相关推荐
无级程序员5 小时前
大数据Hive之拉链表增量取数合并设计(主表加历史表合并成拉链表)
大数据·hive·hadoop
华农DrLai7 小时前
Spark SQL Catalyst 优化器详解
大数据·hive·sql·flink·spark
心疼你的一切17 小时前
解密CANN仓库:AIGC的算力底座、关键应用与API实战解析
数据仓库·深度学习·aigc·cann
qq_124987075320 小时前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计
十月南城1 天前
Hive与离线数仓方法论——分层建模、分区与桶的取舍与查询代价
数据仓库·hive·hadoop
鹏说大数据1 天前
Spark 和 Hive 的关系与区别
大数据·hive·spark
B站计算机毕业设计超人1 天前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
B站计算机毕业设计超人1 天前
计算机毕业设计hadoop+spark+hive交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析(源码+LW文档+PPT+讲解视频)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
AI架构师小马1 天前
Hive调优手册:从入门到精通的完整指南
数据仓库·hive·hadoop·ai
数据架构师的AI之路1 天前
深入了解大数据领域Hive的HQL语言特性
大数据·hive·hadoop·ai