IMA人员管理

IMA人员管理

IMA management

项目需求

部员和部长都可以登陆系统,部长可以进行部员的增删查改等等操作,部员则只能进行查询操作
分为六个部门,除了增删查改操作外,还需要有部门变动的功能
部员要包含 姓名 学号 电话 qq等信息
加入日志功能,可以存储操作日志

项目Github仓库

https://github.com/AlbumenJ/IMA_management

项目环境

Java SE ------jdk8
MySQL   ------mysql8
IDE     ------IntelliJ IDEA 2018.2.3 (Ultimate Edition)

项目代码结构

.  
├── .idea                                                  //IDEA默认配置文件夹  
├── resources                                              //资源目录  
│   └── execute.sql                                        //初始化SQL  
├── src                                                    //源代码目录  
│   ├── META-INF                                           
│   │   └── MANIFEST.MF                                    //信息包  
│   └── cn                                                 
│       └── albumenj                                       
│           ├── dao                                          
│           │   ├── LogCommit.java                         //日志提交  
│           │   └── SqlCommit.java                         //数据增删查改提交  
│           ├── model                                        
│           │   ├── LogModel.java                          //日志模型  
│           │   ├── ResultModel.java                       //数据结果模型  
│           │   ├── DepartmentModel.java                   //部门模型  
│           │   └── UserModel.java                         //用户模型  
│           ├── service                                      
│           │   ├── DepartmentService.java                 //部门数据服务  
│           │   └── UserService.java                       //人员数据服务  
│           ├── util                                         
│           │   ├── commandlineutil                        //命令行模式下交互工具 
│           │   │   ├── Print.java                         //打印工具
│           │   │   └── RequestEnter.java                  //获取输入  
│           │   ├── connectionpool                         //连接池  
│           │   │   ├── ConcurrencySubmit.java             //多线程提交请求  
│           │   │   ├── ConnectionConfig.java              //数据库连接配置文件  
│           │   │   ├── DataCallback.java                  //数据回调接口  
│           │   │   ├── IMyPool.java                       //线程池接口  
│           │   │   ├── MyPollImpl.java                    //线程池具体实现  
│           │   │   ├── PoolSubmit.java                    //数据提交到连接池队列  
│           │   │   └── PooledConnection.java              //数据库具体访问  
│           │   ├── PasswordDecode.java                    //密码加密  
│           │   └── Regex.java                             //正则表达式检测  
│           ├── view                                         
│           │   ├── depertmentpage                         //部门页面  
│           │   │   ├── AddDepartmentPage.java              
│           │   │   ├── DeleteDepartmentPage.java            
│           │   │   ├── ListAllDepartmentPage.java            
│           │   │   ├── ListDepartmentPage.java            
│           │   │   └── ModifyDepartmentPage.java            
│           │   ├── menupage                               //菜单页面  
│           │   │   ├── DepartmentManageMenu.java            
│           │   │   ├── LoginPage.java                       
│           │   │   ├── MenuPage.java                        
│           │   │   └── StaffManagePage.java                 
│           │   ├── staffpage                              //人员页面  
│           │   │   ├── AddStaffPage.java                    
│           │   │   ├── DeleteStaffPage.java                 
│           │   │   ├── ListAllStaffPage.java                   
│           │   │   ├── ListStaffPage.java                   
│           │   │   └── ModifyStaffPage.java                 
│           │   ├── pagemanagement                         //页面逻辑  
│           │   │   ├── DepartmentManage.java                   
│           │   │   ├── MenuManage.java                   
│           │   │   └── StaffManage.java                 
│           │   ├── Manage.java                            //管理页面父类
│           │   ├── Munu.java                              //菜单页面父类
│           │   └── Method.java                            //功能页面父类
│           └── Application.java                           //主程序逻辑实现  
├── README.md                                              //项目说明文件  
└── IMA management.iml                                     //IDEA项目文件  

项目数据库结构

ima_management
├── department                                             //部门
│   ├── no
│   ├── id
│   └── name
├── log                                                    //日志
│   ├── id
│   ├── user
│   ├── action
│   └── time
└── users                                                  //用户
    ├── no
    ├── id
    ├── name
    ├── password
    ├── phone
    ├── qq
    ├── department
    └── permission

连接池结构

cn.albumenj.model.ResultModel
			seed 标志结果编号,在执行完成后凭seed获取结果
			sql SQL执行语句
			mod SQL执行模式
			resultSet SQL执行结果
			result SQL执行结果
cn.albumenj.util.connectionpool.ConnectionConfig
			保存一些关于数据库连接信息、连接池配置信息的常量
cn.albumenj.util.connectionpool.PooledConnection
			与数据库交互的具体实现
			isBusy 标志该连接是否繁忙
			connection 与数据库连接交互的变量
			query(String) 提交数据库执行executeQuery命令
			execute(String) 提交数据库执行execute命令
cn.albumenj.util.connectionpool.IMyPool
			getPooledConnection() 获取一个可用的连接
			createPooledConnection(int) 创建连接池
cn.albumenj.util.connectionpool.MyPoolImpl
			实现IMyPool接口
cn.albumenj.util.connectionpool.ConcurrencySubmit
			实现Runnable接口
			将数据提交到连接中又不会影响主线程运行
cn.albumenj.util.connectionpool.DataCallback
			fetchFinished(ResultModel) 命令执行完回调函数,将结果保存在结果队列中
cn.albumenj.util.connectionpool.PoolSubmit
			实现DataCallback接口
			创建线程将ResultModel提交到ConcurrencySubmit中
			resultModels储存执行结果
			execute(ResultModel) 提交请求
			fetch(double seed) 获取结果

连接池实现思路

主线程:
	1. dao 创建ResultModel;写入sql、mod;提交至PoolSubmit中
	2. PoolSubmit 写入seed;从线程池中获取连接;创建线程ConcurrencySubmit;提交请求;释放主函数占用
	3. dao 多次尝试从PoolSubmit中获取结果
	4. dao 获取到结果后处理结果

数据处理线程:
	1. ConcurrencySubmit 提交请求至PooledConnection、获取执行结果;将结果提交至DataCallback中保存
	2. PoolSubmit 保存结果等待主线程调出结果

权限设置

1 → 会长        → 具有对成员、部门增删查改的权限
2 → 部长        → 具有对成员增删查改、部门查询的权限
3 → 普通成员    → 具有对成员、部门查询的权限

项目默认配置

默认学号:1
默认密码:1

Mark一些笔记

包名要保持小写
类名首字母大写以避免与变量名重叠,影响代码可读性
驼峰命名法
dao包只负责对与数据交互的增删查改、工具要放在util包中、将界面分离出来以优化代码结构

项目存在问题

存储数据库执行结果的resultModels是否线程安全
代码规范问题

完成后一点感想

这个项目如果只是为了达到项目要求的话挺容易的(可以参考下一条博客)
所以为了让它更完(zuo)美(si)加入了模仿Spring思路的分包、连接池、密码加密
每次push完代码后总会发现还有不足的地方
从26号开的坑填到现在差不多一个段落了
我知道这里面肯定还有各种问题,欢迎私聊斧正

这算是大一开学后的第一个小的项目,有点找回了以前打代码的那种快乐
离目标还很远,继续努力鸭

最后一点写给我自己看的:
代码规范真的很重要!
代码规范真的很重要!!
代码规范真的很重要!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: IMA SDK for HTML5是一款用于在HTML5平台上实现广告播放和管理的软件开发工具包。它是由Google开发和维护的,并且被广泛应用于各种网络视频播放器和媒体应用中。 IMA SDK for HTML5的使用可以帮助开发人员轻松地在他们的应用中实现广告的播放功能。它支持各种常见的广告格式,如前贴片、中贴片和后贴片,并且具有丰富的定制能力,开发人员可以根据自己的需求进行调整和扩展。 该SDK还提供了一套丰富的API和工具,使开发人员能够更好地管理广告的展示和交互。开发人员可以使用这些API来控制广告播放的时机、位置和展示方式,并且还可以检测和响应用户与广告互动的事件。 除了广告播放和管理功能外,IMA SDK for HTML5还提供了一些其他有用的功能。例如,它支持广告计策的配置和管理,开发人员可以根据广告商的需求来设定广告展示规则和策略。此外,它还提供了一些用于监测广告播放情况和统计数据的工具,开发人员可以使用这些工具来进行广告效果的分析和优化。 总之,IMA SDK for HTML5是一款功能强大、易于使用的工具,可以帮助开发人员在HTML5平台上实现广告播放和管理。它提供了丰富的功能和灵活的定制选项,为开发人员提供了一种高效、可靠的方式来管理和展示广告。 ### 回答2: IMA SDK for HTML5是Google开发的一种用于在HTML5环境下播放广告的软件开发工具包。它是一种网页广告技术,主要用于在网页或应用程序中实现广告的展示和管理IMA代表“Interactive Media Ads”,是Google广告技术平台的一部分。 IMA SDK for HTML5提供了一系列API,开发者可以使用这些API在HTML5环境中集成广告功能。它的主要功能包括广告请求、广告素材的获取和展示以及广告事件的处理。开发者可以通过IMA SDK for HTML5来控制广告的展示时间、类型、位置以及交互行为等,从而实现个性化的广告体验。 IMA SDK for HTML5支持多种广告格式,包括常见的图像广告、动画广告和视频广告。它还支持各种广告标准,例如VAST(Video Ad Serving Template)和VPAID(Video Player-Ad Interface Definition)。开发者可以根据需求选择合适的广告格式和标准来展示广告。 IMA SDK for HTML5的优势在于它提供了高度可定制化的广告解决方案。开发者可以根据自己的需求调整广告的展示方式,从而提高用户体验和广告收益。另外,IMA SDK for HTML5还具有广告屏蔽检测和广告错误处理等功能,可以帮助开发者优化广告投放效果。 总之,IMA SDK for HTML5是一种用于在HTML5环境中集成广告功能的开发工具包。它提供了丰富的API和广告格式支持,可以帮助开发者实现个性化的广告展示和管理。 ### 回答3: IMA(Interactive Media Ads)SDK是由Google开发的适用于HTML5的软件开发工具包。它提供了一套开发者工具,使开发者能够在HTML5应用或网页中轻松实现视频广告的播放和展示。 IMA SDK具有广告管理、广告播放、交互性控制等核心功能。它可以与播放器或浏览器无缝集成,支持各种广告格式,包括前贴片广告、中插片广告、后贴片广告等。开发者可以通过IMA SDK实现广告的插入、跳过、静音和跟踪等交互功能,以及根据用户操作和广告内容做出相应的响应。 IMA SDK支持动态加载广告,并提供广告计时和广告事件的回调接口,供开发者自定义广告的展示方式和行为。通过集成IMA SDK,开发者可以通过Google Ad Manager或其他广告平台获取并展示广告,实现更好的广告投放和优化。 IMA SDK还提供了一系列工具和文档,帮助开发者快速了解和集成该SDK。开发者可以使用IMA SDK的API和示例代码,快速搭建和定制自己的广告播放器,提供更好的用户体验和广告效果。 总的来说,IMA SDK for HTML5是一个强大而灵活的开发工具包,可以帮助开发者实现高效、交互性的广告播放和展示,提升广告投放效果和用户体验。它为广告开发者提供了丰富的功能和资源,使他们能够更好地利用HTML5技术开发和优化广告应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值