基于JDBC的JavaWeb开发项目之——网上教务系统

本文详细介绍了使用JDBC、JSP和Servlet开发网上教务系统的全过程,包括技术栈的选择、MVC框架解析、StudentBean和服务层的编写,以及DAO实现与Controller与Servlet的角色。讲解了execute、executeUpdate、executeQuery的区别,强调了代码规范和三层架构的重要性,适合JavaWeb初学者参考学习。

基于JDBC的JavaWeb开发项目之——网上教务系统

在这个文章里,我会详细的解释JavaWeb其中的一个框架——MVC框架来完成网上教务系统这一个项目。这个项目是使用JDBC去连接数据库,使用了JSP/servlet,在这个文章里我会详细写出一整个项目是如何写出以及思路是怎么样的。这算是比较简单的JavaWeb开发了,适合新手的学习,对有着基础编程能力的人有一定的帮助吧。如果是想要学习更加高阶的可以去学习基于SSM框架(Spring + Spring MVC + Mybatis)或者SSH框架(Spring + Spring MVC + Hibernate)的JavaWeb开发。最后我也是一个写博客小白,希望有什么错误以及思路不对的地方可以私信给予我一下点评,互相进步才是重点。

用到的技术栈以及需要的工具

浏览器端逻辑工具:Javascript(对于前端的讲解会比较少,重点在于思路以及Java代码的编写)
服务器逻辑工具:JSP/Servlet + Java + JDBC
使用到的框架:MVC(后面详细讲)

需求工具:
JDBC连接的jar包:
点击这个颜表情 ❥(^- ^)可以下载到对应的jar包。
Tomcat:
在官网即可下载。配置的话点击这个颜表情❥(^- ^)可以帮助你

思路讲解

技术

在写一个项目的时候,首先不是动手写,而是思考如何去用自己知道的技术去完成。每个人都有自己的想法,而我现在分享一下我的思路和理解。

首先在写之前要了解MVC框架是啥呢?其实这就是一个开发模式,为了使得代码具有健壮性以及可扩展性;每部分有每部分的功能,互相连接着但是逻辑层只能写业务逻辑,控制层只写servlet,视图层只写前端的页面接口,使得每部分的功能完全分开,而不是又在这写一下那写一下,显得毫无章法可言。

而MVC就是Model View Controller的简称。Model指的是模型层;View指的是视图层,泛指渲染页面的JSP;Controller指的是控制器,指的是指向页面的servlet。其中只有MVC够了吗?我觉得还得加上基础编程上需要用到的三层架构以及工具类。

那到底Model模型层有什么用呢?
其实学过封装就知道为什么要独立出这个层去存放了,其实就是封装好bean去存放每个实现方向需要用到的变量,这个按照数据库创建的各个表去建立各个bean即可。比如如果在这个教务系统中我要用到管理员的登录,那就要用到username和password,那数据库存放时还需要自增的id去分别出各个管理员的区别,更好的寻找;那么这一个教务系统的管理员的bean需要的变量是username和password以及一个自增的id。等教务系统管理员登录进去后,就能看到学生的信息,是不是有学生的自增的id、name、sex、bright(出生年月)、email、term(学期)、grate(学年)、phone、以及连接于科目表的subject_id、remark(备注)。name就可以按照写管理员bean一样的,将这些都变成一个变量去存储,然后全部变量就能形成一个学生对象,一个管理员对象…其他的也就像这么写。

那么View层是什么呢?
顾名思义就是页面嘛,给使用者看到的页面,而实现他们是看不到的。比如你去百度一下,百度”我帅不帅”,那么百度一下的那个页面就是我所说的使用者看到的页面,“我帅不帅”的搜索就是你所需要去实现的功能——》搜索功能,但是页面不可能给你看到后端的搜索代码,这就需要使用到JSP/Servlet去实现页面和后端的分离。JSP即是我们的页面,简而言之View层就是编写页面的JSP所构成。

那Controller又是什么呢?
在你写出了页面,也写完了去实现页面的代码,那如何将页面和各自的代码连接起来,以及使用者在使用某个功能的时候会得到想要的结果。这就是Controller解决的问题:导航。将页面和后端代码连接起来的导航。这里面会用到Servlet,后面讲代码的时候会详细讲,现在知道一下就行。

那么说完MVC,三层架构又是什么呢?
三层架构以及MVC最重要的思想就是规范代码,MVC去规范对象——后端——前端。那么在基础编程中编写后端的实现的时候就需要去用到三层架构去规范后端实现代码的编写。在编写后端的时候又分为:Dao层——Service层——Controller层。Dao层就是实现对数据库操作,Service是作为一个连接器一样的东西去连接到Dao层的操作,最后Controller就是使用Service去得到自己想要的实现。这其中一环接一环,层次分明显得代码很规范。那么编写数据库的代码就只能放在Dao层,业务逻辑就放到Service层,而不能突然又把操作数据库的代码写到Service层,把业务逻辑放在Dao层,这是不可以的。

说说工具类:
工具类主要的目的就是简化我们的代码编写,写出一些类共有的方法,在多个类都要用的时候就不用重复的编写,编写出一个工具类,要用到的时候就可以直接调用。这会让我们编写的时候减少很多代码量以及简化代码,而不是代码耦合的现象产生。在教务系统这个项目中,需要用到一个工具类:连接JDBC的工具类。我们系统有管理员、学生、学院、系、课程,里面的Dao层也都要连接数据库,就要使用到JDBC的技术,那么每次连接都要编写一次连接JDBC的操作,这样会增加很多代码,所以写一个连接JDBC的工具类是最好的选择。

Studentbean的编写

那讲完技术的解释,那么现在讲讲思路(只讲写学生操作的思路,其他其实都是差不多的。):
首先,如果对学生操作,是不是先得有学生这个对象呢?那这个对象怎么写呢?在上面讲了,写在bean即可。可以创建一个bean包作为分离,然后在bean包里创建一个java项目:
在这里插入图片描述
然后用编译器自带的getter and setter的生成即可生成对对象的get操作和set操作。然后再生成toString方法(方便用到嘛)。然后最好是写个有参和无参的构造方法放着,等下在数据库获取数据的时候要用到有参构造器去构造学生对象。

StudentService的编写

其次,我们要想想管理员对学生有什么操作呢?无非就是添加学生的功能,删除学生的功能,修改学生的功能,查询某个学生的功能。老版系统的增删改查都是基本的功能。知道了这个我们在哪里入手呢?那肯定是从后端代码入手对吧,如果是从后端入手,我们就应该先遵从三层架构(在上面我讲了详细的)的编写,那你知道了需要什么功能,那是从Dao层还是Service层还是Controller层入手呢?我建议是先从Service层入手。然后将刚刚的功能转换成代码,但是你只是功能,还未实现那么应该用什么去定义最好呢?那当然就是接口啦,定义一个StudentService的接口类:
service

实现类StudentServiceImpl

那只是接口当然就要去实现它们,那就得写一个类专门去实现它们了,就可以新写一java类去implements它去实现即可:
在这里插入图片描述
在这里插入图片描述
然后Service去控制Dao层去实现功能,比如上图上的Dao层里的checkAllStudent方法、addStudent方法等等,dao是声明出来的一个StudentDao静态对象,可以使用dao去用它这个对象拥有的方法。按照这个思路我们就得去按照这声明的方法去实现出dao的功能:checkAllStudent、addStudent、deleteStudent、updateStudent、checkStudentById、checkStudentByName

StudentDao的编写

直接将方法名复制到dao层即可:
那讲到dao层,是不是应该先连接JDBC呢?所以现在就可以编写一个工具类了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值