基于 B-S 架构数据库管理系统的后端设计

本文只谈设计,具体的代码较少。

项目背景

阐述项目的背景以及需求:在某 Web 项目中集成一个功能模块,就是提供基于 B-S 结构的可以对数据库、表、视图、存储过程、表数据等进行可视化操作。

后端设计

动手前的一些思考

熟悉了需求,思考了很多。最终总结出项目大致的操作流程,只说最重要的步骤,类似于参数校验等先行略过。

  • 前端页面可视化的点击操作,把表格或表单的数据传给后端;
  • 后端解析数据,比如创建表功能,前端传来一大坨表单数据,后端首先要解析数据,并且构建成一条类似于 create table xxx 的 SQL 语句;
  • 创建数据库连接;
  • 执行第二条构建出来的 SQL 语句;
  • 获取执行结果;
  • 关闭数据库连接;
  • 处理执行结果,构造成前端需要的数据,返给前端。

确定了整个操作流程,便开始后端设计。有两个问题,如下:

第一个问题,连接关闭数据库、执行 SQL 语句肯定会有很多通用性代码,而这里也不适合使用 ORM 框架,毕竟没有业务实体类来跟某表做映射。

第二个问题,库的增删查操作、表的增删改查、视图的增删查等等,所有的操作几乎都被框在了上文的操作流程之中,即所有的功能实现均符合上述流程。

鉴于上述第一个问题,最终决定使用原生 JDBC 进行操作。对于第二个问题,就需要进行系统设计来简化通用代码,提升系统稳定性与可操作性,同时具有一定的扩展性。于是我做了如下的设计。

总体设计

按照通用的操作流程划分不同的模块,各个模块组合实现预期功能。具体模块如下:

  • SQL Builder 模块:解析前端传来的参数,构造出预期可执行的 SQL 语句;
  • SQL 执行模块:就是直接执行 SQL 语句,通用的执行模块大大减少了 JDBC 执行 SQL 语句的样板性代码;
  • 执行结果处理模块:按不同的返回值类型,返回不同的结果;
  • 数据源管理模块:使用 AOP 技术来管理数据源的连接与释放,大大简化了数据库连接与释放的通用性代码。

下面粘一张当时设计时画得模块划分图

请添加图片描述

再贴一张四不像图,图里大致列出了整个后端模块的相互依赖关系。(后续一定要学着使用 UML)

请添加图片描述

详细设计

这一部分内容待续吧,暂时不想写。

SqlBuilder 模块

数据源管理模块

SQL 执行模块

执行结果处理模块

总结与改进

总结

  1. 到现在为止,整个库、表、视图、存储过程、表数据等功能均已开发完毕,完全是按照上述总体设计中的操作流程,所有接口均适合。

  2. 使用 ThreadLocal 来存储数据库连接对象 Connection。在 AOP 模块的 doBefore() 方法里创建数据库连接,然后调用 setContext() 方法将连接设置进去。需要的时候 getContext() 获取。最后操作完了,直接调用自定义的 remove() 方法。

    private final ThreadLocal<Connection> context = new ThreadLocal<>();
    

改进

  1. 现在获取数据库连接时直接创建出一个连接,后续可以引入数据源,例如 DruidDBCP 等,减少数据库连接创建与销毁的开销。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、系统概述 本系统是基于B/S架构的企业人力资源管理系统,主要为企业提供人力资源管理的功能,包括招聘管理、员工管理、考勤管理、薪资管理等模块。 二、系统模块 1. 登录模块:用户登录系统时需要输入用户名和密码进行验证,验证通过后可以进入系统。 2. 首页模块:显示系统的主要功能模块,包括招聘管理、员工管理、考勤管理、薪资管理等。 3. 招聘管理模块:负责企业的招聘工作,包括发布招聘信息、招聘流程管理等。 4. 员工管理模块:负责企业员工的管理工作,包括员工信息管理、员工档案管理、员工培训管理等。 5. 考勤管理模块:负责企业的考勤管理工作,包括考勤记录管理、考勤统计、请假管理等。 6. 薪资管理模块:负责企业的薪资管理工作,包括薪资计算、薪资统计、社保管理等。 7. 系统管理模块:负责企业人力资源系统的管理工作,包括用户管理、权限管理、系统设置等。 三、系统功能 1. 用户登录:用户可以通过输入用户名和密码进行登录,系统会进行身份验证,验证通过后可以进入系统。 2. 招聘管理:企业可以发布招聘信息,管理招聘流程,跟进招聘进度等。 3. 员工管理:企业可以管理员工的基本信息,包括个人信息、工作经历、教育经历等;管理员工的档案信息,包括合同信息、调动记录等;管理员工的培训信息,包括培训计划、培训记录等。 4. 考勤管理:企业可以管理员工的考勤记录,包括上下班打卡记录、请假记录等;可以统计员工的考勤情况,包括出勤率、迟到次数等。 5. 薪资管理:企业可以计算员工的薪资,包括基本工资、奖金、补贴等;可以统计员工的薪资情况,包括月薪、年薪等;可以管理员工的社保信息,包括社保账户、社保缴纳记录等。 6. 系统管理:企业可以管理系统的用户,包括用户的添加、删除、修改等;可以管理用户的权限,包括权限的分配、修改等;可以进行系统的设置,包括系统的基本信息、界面风格等。 四、系统设计 1. 技术架构:前端使用HTML、CSS、JavaScript等技术,后端使用Java语言,数据库使用MySQL。 2. 系统体系结构:采用B/S架构,用户通过浏览器访问系统,系统通过Java Web服务器与数据库进行交互。 3. 数据库设计:根据系统功能模块设计数据库表结构,采用关系型数据库MySQL,使用JDBC连接数据库,实现数据的增删改查等操作。 4. 用户登录设计:用户输入用户名和密码,系统将密码进行加密处理后与数据库中的密码进行比对,比对成功则跳转到系统首页,比对失败则提示用户重新输入。 5. 权限管理设计:系统管理员可以添加、删除、修改用户,并分配用户的权限;用户登录系统后,根据权限进行相应的操作,没有权限的操作不可见。 五、系统实现 1. 前端页面:使用HTML、CSS、JavaScript等技术,实现页面的布局和交互效果。 2. 后端代码:使用Java语言,采用SpringMVC框架、MyBatis框架等技术,实现业务逻辑和数据操作。 3. 数据库操作:使用JDBC连接MySQL数据库,实现数据的增删改查等操作。 4. 系统部署:将系统部署到Java Web服务器上,通过浏览器访问系统。 六、系统测试 1. 功能测试:对系统的各个功能模块进行测试,测试数据的正确性和系统的稳定性。 2. 性能测试:测试系统的响应速度、并发能力等性能指标,优化系统性能。 3. 安全测试:测试系统的安全性,对系统进行渗透测试、漏洞测试等,保障系统的安全。 七、系统维护 1. 日常维护:对系统进行定期维护,包括数据库备份、系统更新等。 2. 故障排除:对系统出现的故障进行排除,及时解决问题。 3. 版本升级:对系统进行版本升级,增加新功能、优化系统性能。 4. 安全维护:对系统进行安全维护,保障系统的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值