《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 会跳转到登录页。

相关推荐
pjj198544 小时前
Hadoop-python中使用大数据
大数据·hadoop·python
计算机源码社1 天前
分享一个基于大数据的跨平台内容生态画像与互动等级分析系统,基于Hadoop+Spark的社交媒体互动数据可视化大屏分析
大数据·hadoop·python·机器学习·数据挖掘·spark·毕业设计
BYSJMG1 天前
计算机毕设选题做什么好?基于大数据的用户健身行为数据分析与可视化系统,Hadoop+Spark处理
大数据·人工智能·hadoop·数据分析·spark·课程设计
ha_lydms2 天前
HDFS 简介
大数据·hadoop·hdfs·yarn·调度·aliyun·计算
2601_962298092 天前
零基础学大数据分析全栈
hadoop·python·spark·实战·大数据分析
lhldsg2 天前
幼儿托管系统开发实战指南:从需求分析到架构设计全流程解析
数据库·数据仓库·需求分析
ha_lydms2 天前
HDFS的读写流程
大数据·hadoop·hdfs·mapreduce·yarn·maxcompute·odps
BYSJMG3 天前
大数据毕业设计选题推荐:基于大数据的全球气温历史演变分析与可视化,用Hadoop+Spark处理
大数据·hadoop·分布式·信息可视化·spark·kmeans·课程设计
fastjson_3 天前
Hive 自定义函数
数据仓库·hive·hadoop
Gent_倪3 天前
MySQL 与 Hive 语法异同点详解
数据库·hive·mysql