JavaWeb所涉及的技术栈并不是很复杂,但是对于一个刚刚入门Java领域不久的新手而言,还是感觉种类繁多。我们首先来梳理一下开发一个JavaWeb所需的知识点。直接上图:
JavaSE : Java入门的必备课,从JDK下载到“泛型、反射、注解”,从“hello world”到“高并发、多线程”。这里的技术点对于每一个Java开发人员来说都是要永远重视的,越熟练越好的知识。
数据库 : SQL操作语言,程序员必备知识。“增、删、查、改”都离不开它。毕竟JavaWeb项目一定要与“数据”打交道。同样也是越熟练越好。
Web前端 : 什么?一个后端开发人员也要会前端?是的,如果你完全离开了前端而去开发后端,请问你写的每一个接口,每一个方法谁来做调用测试。对于前端,如果你不打算专门从事于前端开发、页面设计等,那么你只需要学会一些基础的前端知识就足够了。
JavaWeb : 重头戏来了!学到这里,恭喜你!你已经可以独立的开发网站了。你可能已经听过一个词叫做“框架”,就像前端的JQuery、BootStrap一样。框架只不过是帮我们更快、更高效的一个工具。但是我们完全可以离开它自己动手写一个“原生”项目。
看完了这四张图,你可能觉得,怎么好多知识点都没有听过或者又根本熟练还能顺利入门第四阶段吗?
可以!而且是完全没问题。知识的熟练往往是需要重复的!这个阶段虽然是以前面三个阶段为基础,但是也有它的独到之处,在手写项目开发的过程中,你也会慢慢地明白以前还有疑惑的地方。
"dddb"工具包是一个典型的开发JavaWeb项目的好帮手。如果你想更加详细地了解这个工具包的使用,请点击下方链接。里面也附有工具包的下载地址。
当然我们在假设你已经下载了工具包的情况下,现在开始JavaWeb项目开发之旅。
需求分析对于每一个项目是必不可少的。学过“软件工程”的同学应该非常清楚地了解需求分析的重要性。
我们以“学生管理系统”为例,“ 等等!又是学生管理系统?我都已经做过无数次了!走了走了。。。” 同学别急,别急,其实做什么项目都不重要,万变不离其中,一个项目只是技术的载体,当你能够把这个学生管理系统做到炉火纯青的地步时,再想去做别的项目就轻松很多了。所以请耐心跟着我们的步伐一起开始训练吧。
学生管理系统的核心需求很简单:学生身份 + 老师(管理者)身份。学生可以查询自己的成绩及信息,而老师可以增、删、查、改所有学生的信息。而学生进入系统往往还有一个注册和登录的环节,老师则不需要注册。
JavaWeb项目中,很经典的一个观念:一种身份,比如学生,就对应后端中的一个Bean类,学生类就对应一个StudentBean类,而一个Bean类则对应一个数据库表,对应数据库操作方法集合——也就是Dao类,Dao层我们往往用接口技术将增、删、查、改抽象起来。而Dao层的实现类则是DaoImpl层对应的类来实现。
“ 天哪!太复杂了,又是Dao层又是DaoImpl层的。完全弄不清楚 ”。同学你别急,这里面的所有Java类都是用的JavaSE阶段的技术实现的,无非也就是“继承、抽象、多态”等思想的反复应用。层次模型的开发可以帮助我们降低代码耦合程度,便于后续维护。
我们知道肯定还有很大一部分新手对于这里的层次理解不够清楚,从而阻碍了你的项目开发信心。没关系,还记得我们提过的"dddb"工具包吗?这个时候它就派上用场了,我们接着继续走下一步。
既然我们使用了"dddb"工具包,作为新手的我们就可以直接放弃传统的各个层次模型的理念。将所有一切复杂的事物抽象为一行代码。
SuperDaoImpl tb_student = new SuperDaoImpl("tb_student");
这就完了?
是的,这就足够了!
这行代码是"dddb"的核心思想,是"dddb"工具包的灵魂。它将所有的数据库连接、数据库操作、JavaBean封装等等代码全部抽象成一个SuperDaoImpl类,当你实例化它的一个对象的时候,它会要求你传入一个字符串类型参数,而这个参数就是我们想给我们学生对象的数据库表取的名字。
而数据库操作方法,比如查所有学生信息,你只需要:
ArrayList<SuperBaseBean> List = tb_student.select();
所有学生的数据会以一个ArrayList的方式返回给调用者。
这个时候是不是觉得后端开发也没有那么难了。那我们就直接一口气写完所有后端代码吧!
package com.yixi.dddb;
import com.yixi.daoImpl.SuperBaseDaoImpl;
import com.yixi.database.BaseConnection;
import com.yixi.database.InitTable;
public class Admin {
//新建一个学生数据表对象,使用“超级模板”
SuperBaseDaoImpl tb_student = new SuperBaseDaoImpl("tb_student");
SuperBaseDaoImpl tb_admin = new SuperBaseDaoImpl("tb_admin");
//初始化数据库、初始化学生表(数据库连接 和 新建表)
public static void Init(){
//获取数据库连接
BaseConnection connection = new BaseConnection();
//连接是否成功做一个简单判断
if (connection.getConnection() != null){
System.out.println("数据库连接成功");
}else {
System.out.println("数据库连接失败");
}
//初始化学生表,使用“超级模板”并将新表命名为 tb_student
//初始化管理员表,使用“超级模板”并将新表命名为 tb_admin
InitTable.Init(InitTable.SuperBaseSQL,"tb_student");
InitTable.Init(InitTable.SuperBaseSQL,"tb_admin");
}
public static void main(String[] args) {
Init();
}
}
后端开发,就这么简单!
我们接下来运行我们写的初始化方法,因为刚开始还没有连接到数据库也没有初始化表。所以需要做一个初始化操作,初始化成功后,注释或删除掉该类即可。
点击运行:
这些报错信息对你来说可能是坏消息,对于"dddb"的开发者可是天大的好消息,因为它帮我们生成了一个数据库配置文件。在哪?你看看你的项目空间是不是多了一个databaseConfig.config文件。
把这个文件用notpad++或者记事本或者IDEA打开,你会看到如下信息:
如果你不会配置,请移步至dddb工具包详细介绍
文件配置完成后,再次运行:
后端开发到此结束!前端开发本文不在赘述。
读到这里,可能有些读者会有些疑问,后端开发就用这个工具包草草几行代码就完事了吗?本文的中心思想其实并不是让读者去走这种 “捷径” 。而是向读者传达一种知识的整合和框架体系的建立思想。上述工具包其实就是一个简易的Hibernate的框架。