【SSM】SSM开发流程及常见问题

  • Post author:
  • Post category:其他



SSM开发流程及常见问题

后端开发主要是java代码的编写,拿到详细的任务要求便可开始,开发可分为正向和逆向,

正向从entity到dao 到mapper到service到controller

逆向从业务出发,先写controller,需要什么service,便写什么service,service需要什么dao,再去编写dao,最后到entity。

正向思维较为容易理解,正常情况下一般采用正向的思维去编码

下面介绍开发的流程

1 首先根据业务,确定实体类(一般与数据库的表一一对应)和封装类(Controller返回的对象类,一般是实体类的部分字段或是实体类的List或者业务衍生出的字段的集合)

2 根据第一步的封装类,编写dao以及对应的mapper,dao的逻辑就是为了产生封装类的属性(部分属性可直接产生,还有一部分属性需要到service层对数据处理才能产生)。

3 根据业务需求,编写service层,service层对dao层产生的数据进行处理,把封装类的属性全部设置进去返回。

4 最后编写controller层代码,需提前与前端确定好URL规范,调用service得到返回的封装类,加上@ResponseBody注解返回

下面简单介绍一下常见的问题

Entity层只要足够了解业务需求,一般不会出错

Dao层mapper的编写出现错误较多,错误多出现在对mybatis语法的不了解,比如

  1. resultType与resultMap的区别
  2. 多参数查询不用写parameterType,使用占位符或者使用@Param注解
  3. 出现运行不出错,但是查询不到数据可能是中文的编码问题,在dbcp.xml文件中在数据库连接URL后加上useUnicode=true&characterEncoding=UTF-8,这个问题可能在本次项目中不会出现,以后要注意
  4. 出现运行不出错,查询到某些数据的某个字段为空,可能原因是entity类的字段名于数据库字段名不匹配

总结:dao层写一步,测一步,编写mapper之前,把你要拼接的sql语句先拿到数据库运行一遍,编写mapper后,使用Junit立即进行测试,如果不报错,把结果与数据库端的执行结果进行对比,确保不出现数据丢失等情况,如果报错,看报错信息,一般都是由于sql语句拼接有误,mybatis解析不了产生。有报错的bug是友善的,一般通过自己看或者百度就能解决。

Service层编写就看java的基础怎么样了,如果出现问题,一般也是逻辑出错,一步步的println就能解决问题(当然dao提供的数据是一定不能错的,所以测试dao一定要仔细)

关于框架集成的问题:

我们把所有的dao和service都交由spring来管理,在spring-mybatis.xml文件中,我们指定了dao的位置,所以dao层不需要手动加注解,但是service,controller层需要我们手动加上注解@Service(此注解加在Service的实现类上) @Controller。



版权声明:本文为qq_33591903原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。