模 块 复 用

原本还要测试一会的,突然出现一连串诡异的问题,比如,编译少加载个类啊,输入地址少个字母啊,改几行代码一改就是半小时啊。这是在提醒我们大脑疲倦了,所以果断小结,下次继续。这一次简单完成了一个复用性功能模块,用户模块。程序,是为了解决问题的,那么用户模块解决了什么问题呢?对用户而言,用户注册,用户登录,用户应用;对管理者而言,用户权限;对商人而言,用户筛选,用户定位,用户......用户都快被玩坏了,比如多系统单点登录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)的更多相关文章

  1. 个人知识管理系统Version1.0开发记录(09)

    MyBatis初试 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.   运用Mybatis框 ...

  2. 个人知识管理系统Version1.0开发记录(01)

    架 构 描 述 01.数据层,数据源,有形资源入库,无形资源整理,对外搜索引擎,对内平台搜索,数据类型(文字.图片.声音.视频.组合),数据时空优化,数据安全方案(数据进站关卡,数据出战关卡),数据并 ...

  3. 个人知识管理系统Version1.0开发记录(02)

    第 一 步 做 什 么 我们该如何入手呢?先来看看目前常用的三个方法. 1.从事物产生的源头出发,层层推进,步步验证,最后开花结果.这种方法经常用于科研项目,或者三期以后的工程,国家政府项目用的较多. ...

  4. 个人知识管理系统Version1.0开发记录(12)

    最近碰到个问题,在五个工作日内阅读一个百万行左右代码量的新项目集合,如何解决呢? 第一个工作日,环境观察.待在那个项目组,看项目成员们在做些什么事情,开发,测试,聊天,或多或少可以收集到一些项目相关的 ...

  5. 个人知识管理系统Version1.0开发记录(10)

    物理分页 这次我们运用Mybatis拦截器来实现物理分页,后面会运用动态sql来实现,或者运用Map/CollectionUtils/StringUtils编写工具类来实现.oracle是运用的row ...

  6. 个人知识管理系统Version1.0开发记录(11)

    (1)匹配单个属性的关键字:(2)匹配单个对象的关键字:(3)匹配对象集合的关键字:(4)基于事件驱动的:(5)实时搜索,参考win7的搜索功能. 1.备份,java代码,数据库数据. 2.oracl ...

  7. 个人知识管理系统Version1.0开发记录(08)

    切入点 前面,我们已经搭建好了web端的一种基本结构,需要进一步定位的主要问题有三点: 1.界面的选择和确定,用extjs做的初步样式,进一步改动为jqueryUI/html,再进一步改变为HTML5 ...

  8. 个人知识管理系统Version1.0开发记录(05)

    demo controller我们从前面的实现过程可以得出三种普遍使用的信息处理方式:1.操作数据库,对数据进行增删改查,比如运用sqldevloper查看数据信息.2.运用计算机程序语言,对数据进行 ...

  9. 个人知识管理系统Version1.0开发记录(06)

    demo view 夜已深,我们先简单演示一下,完成一个小段落了.涉及工具及技术知识:图形处理软件photoshop cs6,js类库ext. 思路如下: 1.下载ps6,有破解版本的,dll文件覆盖 ...

随机推荐

  1. 使用linuxbridge + vlan网络模式

    #openstack pike 使用 linuxbridge + vlan openstack pike 集群高可用  安装部署 汇总 http://www.cnblogs.com/elvi/p/76 ...

  2. (4.21)SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

    转自:指尖流淌 http://www.cnblogs.com/zhijianliutang/p/4100103.html SQL Server数据库启动过程(用户数据库加载过程的疑难杂症) 前言 本篇 ...

  3. 详谈LABJS按需动态加载js文件

    为了提高页面的打开和加载速度,我们经常把JS文件放在页面的尾部,但是有些JS必须放在页面前面,这样就会增加页面的加载时间:于是出现了按需动态加载的概念,这个概念就是当页面需要用到这个JS文件或者CSS ...

  4. 剑指offer-有序二维数组中的查找

    在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. def Find(self, t ...

  5. mysql++使用

    Mysql++是官方发布的.一个为MySQL设计的C++语言的API.Mysql++为Mysql的C-Api的再次封装,它用STL(Standard Template Language)开发并编写,并 ...

  6. MySQL事务概述-1

    事务是数据库区别于文件系统最重要的特性之一.事务可由一条非常简单的SQL语句组成,也可以由一组复杂的SQL语句组成.事务是访问并更新数据库中各种数据项的一个程序执行单元.在事务操作中,要么都做修改,要 ...

  7. Vue学习笔记之Nodejs入门

    0x00 前言 打开Nodejs英文网:https://nodejs.org/en/ 中文网:http://nodejs.cn/ 我们会发现这样一句话: 翻译成中文如下: Node.js 是一个基于 ...

  8. bzoj1625 / P2871 [USACO07DEC]手链Charm Bracelet

    P2871 [USACO07DEC]手链Charm Bracelet 裸01背包. 看到自己1年半前写的30分code.......菜的真实(捂脸) #include<iostream> ...

  9. 20145333 《网络对抗技术》 PC平台逆向破解

    20145333 <网络对抗技术> PC平台逆向破解 20145333 <网络对抗技术> PC平台逆向破解 Shellcode注入 基础知识 Shellcode实际是一段代码, ...

  10. linux第七周

    可执行程序的装载 一.预处理.编译.链接和目标文件的格式 可执行文件的创建——预处理.编译和链接 cd Code vi hello.c gcc -E -o hello.cpp hello.c -m32 ...