一、MVC 1、view --> controller --> service(impl) --> dao(sql.xml) (1)service可否相互调用? 具体看项目需求,一般可以,例如不同模块调用服务 但是dao层不要相互调用,一个dao就和本表及其密切相关的表进行CRUD即可
(2)controll和service? 在MVC架构前期(jsp的时候)我的理解是controll做三件事情 - 接收参数 getParameter - 调用对应service处理业务逻辑 - 进行页面的跳转 但是目前 单页应用 + SpringMVC的传参去掉了我们的第一步和第三步,所有我感觉Controller层有点没用了,往往里面只用一条语句(就是调用service),所有我不太理解controller层存在的必要性在哪里? 目前Controller主要的功能 (1)参数校验(非空、正则等等) 这些东西前端多数可以做,但是如果别人懂js的话,可以在浏览器中把你的规则去掉,所有安全性要求高的话,后端也需要进行参数校验 而一些需要查询后台数据库的东西,比如用户id不能重复等等,就不能单纯在前端做了(特别现在前端模块化,前端除用户交互外,也要避免做太多的逻辑) (2)异常捕获(注:springboot统一的异常捕获) (3)较轻的业务逻辑
二、DB 1、尽量避免使用嵌套循环 因为外层每查询一条,内层查询就会执行一次,效率低(据说,没实验过)
2、联表查询的规范 尽量一条搞定,重新写一个接口 避免for循环里面去执行sql(因为sql的连接需要资源?连接池?)
|