一、写在前面
很多人做到这一步,就会觉得现在是写代码的阶段了,其实不是。在整个的开发过程中,代码的书写所占比例其实是很小的,我们应该最先设计好整个系统,对自己要做的系统建模,设计好自己所需要的功能,连起来,再一步一步的去开发代码。
如果你像我一样,还没考虑好要做一个怎样的系统,那就先简单确定一下系统大致会有的功能,比如,登录与注册。当然,这个是视系统而定的,如果是管理重要信息的系统,就别安排注册功能了。
既然有用户了,那就肯定会有用户管理模块,这里最好能把菜单栏也加入到管理中去,这样菜单栏才是动态加载的,另外还可以添加角色模块,不同的角色对系统所见或管理是不一样的,这样能更方便操作系统。
二、设计数据库
大致定好方向以后,就可以设计数据库了,写系统最好先建数据库,根据你系统的结构设计好每一张表。不用一开始就将所有的表都设计出来,你可以先把需要的几张表设计出来,在系统开发的后期,还是可以添加和修改表格的。
在这里,我有几点自己的见解,工作中,因为系统使用的是Hibernate,所以很多实体类里的外键关联全是实体类,我个人觉得这样的写法是给自己埋坑,除非你很会,不然还是不建议你这样做。两张表中有关联,其实完全可以取表的id字段作为外键关联,我比较喜欢这样做,不管是查询什么,只需要将id值取出来,去表中查找即可,或者直接将id作为条件,多表联查,系统不会因为查询过多字段而冗余,自己也不会因为各种弯弯绕绕而头晕。
在工作中的开发,数据库设计基本都是提前设计好的,字段啊什么的都是有专人设计,如果你的公司没有,基本上就得是你自己来,不过肯定会有项目经理给你讲需求,你可以根据需求自己设计出数据表,不过在学习的过程中,就像自己做个毕业设计什么的,在不知道自己数据表需要设计成什么样的时候,你就可以先把重要的字段先写出来,比如:
在现在做的这个系统中,你不知道自己数据表该如何设计,那你可以先一张一张表来想,首先,既然是系统,就一定有登录,有登录就肯定有用户,那用户有些什么属性呢?首先,账号密码是必须的,而每张表必须自增长的id字段是不能少的,这个是数据表的主键,然后就是确定他是不是主表了,用户访问系统会有权限,比如哪些菜单它能看,哪些它不能看,那些页面他只能读不能写,这些都是权限,这些权限一般是添加在角色中,而一般是用户关联角色,所以这里还得有角色表的id字段,那这样,一张表就创建完成了。
以下是我创建的几张表,字段的类型就自己定,如果是字符串类型的,就用varchar类型,如果是纯数字,就用int,八大基本数据类型,视情况而定就行:
用户表:
角色表:
权限表:
表单表:
到这一步,数据表就设计完成了,接下来就能进行代码的开发了。
三、系统开发
在写代码之前呢,还是建议你去网上找一个别人开发好的前端框架,就是你平时看见的别人美美的系统,网上很多人分享了各种好看的静态页面,如果你自己有这个实力,可以自己去设计,不过一个好看的前端网页,需要很多时间去开发,各种css和js文件,如果不是专业前端开发工程师,很难做出一个好看的界面,如果是作为毕业设计,还是做的好看点吧。
下载好的前端界面解压后基本就是html后缀的文件,js文件夹,image文件夹,css文件夹,直接整个复制到webApp文件夹下,最好是建一个文件夹,将这个文件夹放在新建的文件夹下,管理好自己的代码文件,让别人阅读也舒适一些。
接下来,就可以在你的实体类文件夹下创建实体类了,取名自己可以定,最好是用entity或者pojo命名,如下:
以用户表做为实例讲解:
package admin.pojo;
/**
* @author Fan
*/
public class User {
private int userId;
private String userName;
private String userPwd;
private String userJobNo;
private int roleId;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String getUserJobNo() {
return userJobNo;
}
public void setUserJobNo(String userJobNo) {
this.userJobNo = userJobNo;
}
public int getRoleId() {
return roleId;
}
public void setRoleId(int roleId) {
this.roleId = roleId;
}
@Override
public String toString() {
return "User{" +
"userId=" + userId +
", userName='" + userName + '\'' +
", userPwd='" + userPwd + '\'' +
", userJobNo='" + userJobNo + '\'' +
", roleId=" + roleId +
'}';
}
}
不知道你的java基础是什么样的,我这里讲的尽量详细一些,java文件的结构是访问修饰符 class 类名 大括号,大括号里面包含的是变量,方法;
访问修饰符一般为四种(public,private,protected,default),是整个类的访问权限,具体规则如下:
适用范围<访问权限范围越小,安全性越高>
- 访问权限 类 包 子类 其他
- public ∨ ∨ ∨ ∨ (对任何人都是可用的)
- protect ∨ ∨ ∨ × (继承的类可以访问以及和private一样的权限)
default ∨ ∨ × × (包访问权限,即在整个包内均可被访问)
private ∨ × × × (除类型创建者和类型的内部方法之外的任何人都不能访问的元素)
这里先用private修饰变量,就是用户的属性,将用户属性私有化,这样其他类就不能访问该属性了,然后通过get和set方法,赋予属性的读写权限,这样就可以通过类的调用来给用户的属性赋值或取值了,至于toString方法,这只是一个方便打印输出整个类的属性的方法,可有可不有。
访问修饰符与变量中间的是数据类型,八大数据类型可自行百度。
写代码前的准备到这里就完成了,后期要做的就是将html页面修改成jsp文件,书写后台控制层、服务层和dao层代码,完成登录的功能。
完成后的效果图如下:
这个是我做的初始界面,因为我想做的是一个门户与管理一体的系统,所以当系统启动后访问的初始页面应该是门户网站的主页,当点击管理系统时,则跳转到后台登录系统。
这个便是后台登录系统,登录成功后便进入到后台管理系统的主页。
这个界面还没改造完成,这边是后台管理系统的界面。
这些界面都是我在网上淘的别人做好的前端页面改造的,既然有现成的,就别自己动手了,前端页面的东西,代码量非常大,不过如果有兴趣,还是可以尝试着自己去写的。