Java项目考试系统总结

此文章只作为本人的实训总结。

做一个Java项目虽然很难,主要还是因为此前并未深入的学习Java,也没有人带领学习,但是实训总归是结束了,结束之后也需进行总结。

一、工程结构应用分层

1、Java项目中的命名java.com.sicau(川农考试系统)

命名也是需要有科学性的

2、分为5个package

  • 分别为common、controller、dao、entity、service

  • common层:一些工具包,包括时间倒计时处理工具、password的加密与解密、请求数据返回之后的信息

  • controller层:Controller层负责具体的业务模块流程的控制,在此层里面要调用Serice层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。      

自己的理解:如命是一个控制器Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

  • dao层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。

自己的理解:数据访问层,全称为Data Access Object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查

  • entity层:就是属性类,通常定义在model层里面 ,entity层也可被认为作为是model层。一般的实体类对应一个数据表,其中的属性对应数据表中的字段。(说白了就是为了让程序员在对数据库操作的时候不用写SQL语句,就是一个数据库表生成一个类,这样做对数据库操作起来方便,编写代码较少 提高效率,可以使程序员专注逻辑关系 

好处:

1.对对象实体的封装,体现OO思想。

2.属性可以对字段定义和状态进行判断和过滤

3.把相关信息用一个实体类封装后,我们在程序中可以把实体类作为参数传递,更加方便

  • service层:Service层主要负责业务模块的逻辑应用设计。同样是首先设计接口,再设计其实现的类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁

自己的理解:相对具体的业务逻辑服务层,也被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制

 

3、思想很重要!代码是基于思想来敲的

二、接口

service层中的接口,对应service中serviceImpl的package。

接口的好处:

  • 减少代码的书写(上边分析的代码重载)
  • 提高了代码的可维护性和扩展性
  • 在团队合作中,代码的规范性

 

三、数据库语句

  1. mapper:是mybtis框架的映射用到,运用SQL语句与mapper映射文件在dao层用
  2. 一些数据库语句:

挑选语句:select

  • SELECT * FROM grade WHERE  id=#{id} and user_id=#{userId} AND paper_id=#{paperId} AND score=#{score}
  • SELECT * FROM paper WHERE id=#{paperId}
  • SELECT * FROM paper WHERE id=#{paperId} AND title = #{title} AND title_time=#{testTime}

插入语句:

  • INSERT INTO paper VALUE (null ,#{title},#{tsetTime})
  • INSERT INTO grade VALUE (null,#{userId},#{paperId},#{score})

删除语句:

  • DELETE from paper where id = #{paperId}
  • DELETE from question where id = #{questionId}

更新语句:

  • UPDATE question set title = #{title} , option_a = #{optionA},option_b = #{optionB},option_c = #{optionC},option_d = #{optionD}  where id = #{id}
  • UPDATE paper set title = #{title} , title_time=#{tsetTime} WHERE id=#{paperId}

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值