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

相关推荐
沃达德软件1 小时前
智慧政工中心功能解析
大数据·数据仓库·数据库开发·数据库架构·etl工程师
温暖小土3 小时前
ClickHouse vs Apache Doris:2026年实时OLAP数据库选型深度解析
数据库·数据仓库·clickhouse·apache
沃达德软件4 小时前
警务指挥情报中心建设
大数据·数据仓库·数据库开发
zgl_200537795 小时前
源代码:ZGLanguage 解析SQL数据血缘 之 显示 UNION SQL 结构图
大数据·数据库·数据仓库·sql·数据治理·sql解析·数据血缘
talle20216 小时前
Hadoop分布式资源管理框架【Yarn】
大数据·hadoop·分布式
yumgpkpm6 小时前
基于GPU的Spark应用加速 Cloudera CDP/华为CMP鲲鹏版+Nvidia英伟达联合解决方案
大数据·数据库·人工智能·hadoop·elasticsearch·spark·cloudera
talle20217 小时前
Hadoop分布式文件系统【HDFS】
大数据·hadoop·hdfs
亲爱的非洲野猪1 天前
SpringBoot启动流程深度剖析:从@SpringBootApplication到Servlet容器就绪
hive·spring boot·servlet
星火开发设计1 天前
深入浅出HDFS:分布式文件系统核心原理与实践解析
大数据·数据库·hadoop·学习·hdfs·分布式数据库·知识
`林中水滴`1 天前
Hive系列:Hive 整合 HBase
hive·hbase