本文档详细介绍了Spring MVC与MyBatis框架在Oracle和MySQL两个数据库版本中的组合使用,以及各个关键包的功能和结构。以下是主要内容的概述:
1. **包结构详解**:
- `src`目录是项目的源代码根目录,分为以下几个子包:
- **controller**: 业务处理包,负责处理用户的请求并调用DAO层进行数据操作,是日常代码维护的重点。
- **dao**: 包含增删改查操作的接口,这些接口通常定义在单独的接口类中,但实际的实现逻辑一般在MyBatis的Mapper接口和XML映射文件中完成。
- **entity**: 存放数据库实体类,即用于存储数据的对象,如User实体类。
- **filter**: 登录过滤器,用于验证用户身份,若未登录则重定向至登录页面,配置在web.xml中。
- **interceptor**: 会话有效期验证器,判断请求的URL是否需要session,对不符合条件的请求进行相应的处理。
- **Listener**: Web容器启动时的监听器,负责初始化一些全局设置。
- **Plugin**: 分页插件,已预先配置,无需修改。
- **MyExceptionResolver**: 异常处理模块,统一处理和展示各种异常情况。
- **Util**: 工具类,包含通用功能如发送邮件、短信,日期格式转换等。
2. **资源文件配置**:
- `mybatis`: 存放MyBatis的配置文件,如SqlSessionFactory.xml,用于配置数据库连接、事务管理等。
- `spring`: 映射Spring框架配置文件ApplicationContext.xml,包括依赖注入、bean定义等。
- `log4j`: 日志处理配置文件,支持将日志记录到磁盘特定目录。
- `dbconfig.properties`: 数据库连接池配置文件,管理数据库连接资源。
- `shiro`: 安全管理配置,用于权限控制和会话管理。
3. **增删改查流程**:
- 用户操作流程通常是通过HTTP POST请求到`user/saveU.do`这样的URL,映射到Controller中的相应方法。
- 表单提交的数据通过`pd = this.getPageData()`获取到,作为Map对象,可以直接访问其中的字段值,如`pd.getString("username")`获取用户名。
- 与Struts2相比,Spring MVC的MVC分离更明显,控制器处理请求和视图的跳转,而非直接操作XML配置。
4. **文件结构示例**:
- `WebRoot`:项目部署的根目录,包含子目录如`admin`、`plugins`、`static`等。
- `admin`:存放配置文件和自动生成的代码。
- `plugins`:插件存放目录。
- `static`:存放静态资源,如CSS、JS、图片等。
- `jsp`:JSP页面存放目录,通常位于WEB-INF下。
这份文档为Spring MVC和MyBatis框架在Oracle和MySQL版本下的应用提供了清晰的包划分和配置指导,有助于开发者更好地理解和组织代码,实现高效的数据库操作和系统功能。同时,它还强调了常见的开发流程和资源管理,有助于提升开发效率和代码质量。