个人知识管理系统Version1.0开发记录(07)
模 块 复 用
原本还要测试一会的,突然出现一连串诡异的问题,比如,编译少加载个类啊,输入地址少个字母啊,改几行代码一改就是半小时啊。这是在提醒我们大脑疲倦了,所以果断小结,下次继续。这一次简单完成了一个复用性功能模块,用户模块。程序,是为了解决问题的,那么用户模块解决了什么问题呢?对用户而言,用户注册,用户登录,用户应用;对管理者而言,用户权限;对商人而言,用户筛选,用户定位,用户......用户都快被玩坏了,比如多系统单点登录sso,对用户有好处,商业价值不可估量。所以,每一种技术的出现,必然是因为产生了新的社会需求,商业需求尤其明显。多找商业伙伴聊天,这是一件有趣的事情。
时间不早了,记录下大致思路:
1、一个常用用户级联,公司-》部门-》职务-》员工,编写四个实体类。

2、一个实体类,对应数据库一张表,用sqldeveloper创建四张表。建表前,登录system,(1)创建表空间,(2)创建一个新用户,(3)赋予dba等权限,方便以后数据库存储备份导入导出。用创建的新用户登录,创建表格。

3、数据持久层,dao接口。查询,将数据库的相关数据复制一份到计算机内存。增加、修改,将计算机内存的相关数据写入数据库。删除,删除计算机内存的一个对象,删除数据库的一条数据。

4、数据持久层,dao实现类。用户登录(根据用户名和密码查找员工,返回一个员工对象,属性和值)。用户登录是查询操作,将数据库的相关数据复制一份到计算机内存。

5、工厂设计模式。在数据持久层和业务逻辑层之间,做一个纽带,方便更改接口实现方式,方便维护。

6、业务逻辑层接口和实现类,用于做一些有效性验证的工作。比如,完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等。

7、Junit4单元测试。逻辑是否合理?是否遗漏情况?类、方法、变量是否正常使用?参数是否正确书写?......只要是人,都会犯错。

8、控制层,逻辑层和表示层之间的纽带。表示层对控制层说:我要取份数据。控制层没有数据,于是对逻辑层说:我要取份数据。逻辑层回答:我这里有很多类型的数据模型,你得带上需求类型选择适合的。控制层表示毫无压力:我设计个开关好了,表示层1来了,我给她数据模型1;表示层2来了,我给她数据模型2;表示层3来了,我给,等等,你的需求太特别了,我得找总部申请,给您私人定制。

9、web.xml配置。这个稍微有点复杂,后面用多了再做小结。

10、最高权限管理员dyl登陆。话说,想让Google Chrome浏览器保存您的密码吗?保存密码 or 此网站一律不保存密码。在用户界面上测试,一边测试一边修改,然后一连串诡异的事情相聚发生,我们的大脑里冒出了一连串的问号,哪里出问题呢?哪里出问题呢?哪里出问题呢?......

平时空闲时间修修补补,会把用户模块界面测试通过;1000个知识点收集的事情,竟然还没有完成,三分之一,我们已经迫不及待想开发知识体的功能模块了,一边等待一边多想想也是好的。下次,我们会考虑,(1)用框架修改控制层,(2)或者数据层,(3)或者写一个实用的小功能模块。OK,我们下次见。
个人知识管理系统Version1.0开发记录(07)的更多相关文章
- 个人知识管理系统Version1.0开发记录(09)
MyBatis初试 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索. 运用Mybatis框 ...
- 个人知识管理系统Version1.0开发记录(01)
架 构 描 述 01.数据层,数据源,有形资源入库,无形资源整理,对外搜索引擎,对内平台搜索,数据类型(文字.图片.声音.视频.组合),数据时空优化,数据安全方案(数据进站关卡,数据出战关卡),数据并 ...
- 个人知识管理系统Version1.0开发记录(02)
第 一 步 做 什 么 我们该如何入手呢?先来看看目前常用的三个方法. 1.从事物产生的源头出发,层层推进,步步验证,最后开花结果.这种方法经常用于科研项目,或者三期以后的工程,国家政府项目用的较多. ...
- 个人知识管理系统Version1.0开发记录(12)
最近碰到个问题,在五个工作日内阅读一个百万行左右代码量的新项目集合,如何解决呢? 第一个工作日,环境观察.待在那个项目组,看项目成员们在做些什么事情,开发,测试,聊天,或多或少可以收集到一些项目相关的 ...
- 个人知识管理系统Version1.0开发记录(10)
物理分页 这次我们运用Mybatis拦截器来实现物理分页,后面会运用动态sql来实现,或者运用Map/CollectionUtils/StringUtils编写工具类来实现.oracle是运用的row ...
- 个人知识管理系统Version1.0开发记录(11)
(1)匹配单个属性的关键字:(2)匹配单个对象的关键字:(3)匹配对象集合的关键字:(4)基于事件驱动的:(5)实时搜索,参考win7的搜索功能. 1.备份,java代码,数据库数据. 2.oracl ...
- 个人知识管理系统Version1.0开发记录(08)
切入点 前面,我们已经搭建好了web端的一种基本结构,需要进一步定位的主要问题有三点: 1.界面的选择和确定,用extjs做的初步样式,进一步改动为jqueryUI/html,再进一步改变为HTML5 ...
- 个人知识管理系统Version1.0开发记录(05)
demo controller我们从前面的实现过程可以得出三种普遍使用的信息处理方式:1.操作数据库,对数据进行增删改查,比如运用sqldevloper查看数据信息.2.运用计算机程序语言,对数据进行 ...
- 个人知识管理系统Version1.0开发记录(06)
demo view 夜已深,我们先简单演示一下,完成一个小段落了.涉及工具及技术知识:图形处理软件photoshop cs6,js类库ext. 思路如下: 1.下载ps6,有破解版本的,dll文件覆盖 ...
随机推荐
- [ASP.NET]从Request.Url获取根网址的最简单方法
在拼接绝对路径的网址时,经常需要从Request.Url中获取根网址(比如http://www.cnblogs.com),然后与相对路径一起拼接为绝对路径. 以前的做法如下: var uri = Re ...
- Linux系统stat指令用法
stat指令:文件/文件系统的详细信息显示. stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下: stat命令-->用来显示文件的详细信息,包括inode, atime, ...
- | unauthenticated user (1130, "Host '127.0.0.1' is not allowed to connect to this MySQL server")
mysql> show processlist;+----+----------------------+-----------------+------+---------+------+-- ...
- <sourceDirectory>src/main/java</sourceDirectory> mvn 配置 包路径
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven ...
- Django - Cookie、Session、自定义分页和Django分页器
2. 今日内容 https://www.cnblogs.com/liwenzhou/p/8343243.html 1. Cookie和Session 1. Cookie 服务端: 1. 生成字符串 2 ...
- kubernetes实战(五):k8s持久化安装Redis Sentinel
1.PV创建 在nfs或者其他类型后端存储创建pv,首先创建共享目录 [root@nfs ~]# cat /etc/exports /k8s/redis-sentinel/ *(rw,sync,no_ ...
- Design Pattern in Simple Examples
Instead of defining what is design pattern lets define what we mean by design and what we mean by pa ...
- CSS伪代码
/*在p之后插入我是好人*/ p.first:after { content: "好人" } /*在p之前插入亲爱的朋友men*/ p:before { content: &quo ...
- (9)SpriteFrameCache和TextureCache
简介 SpriteFrameCache 主要服务于多张碎图合并出来的纹理图片.这种纹理在一张大图中包含了多张小图,直接通过TextureCache引用会有诸多不便,因而衍生出来精灵框帧的处理方式,即把 ...
- Android实现录屏直播(一)ScreenRecorder的简单分析
http://blog.csdn.net/zxccxzzxz/article/details/54150396 Android实现录屏直播(一)ScreenRecorder的简单分析 Android实 ...