spring mvc 关于dao层的问题
最近在学spring 框架,接触到了spring mvc设计模式中的三层架构,一般是分为三层架构,控制层,服务层,Dao层,自己也做一个小项目,但是有个问题很让我苦恼,比如我设计了一张用户表,里面有账号和密码两个字段,然后在Dao层写好mysql语句后,业务层和控制层完成了登录注册,
这时候我想添加一个ip或者其他字段,这时候问题就出现了,整个登录的都需要重写,实体类需要改,dao层也需要改,甚至业务层和控制层也都是需要改了,
这种不是更加浪费时间吗? 就加一个字段,把涉及到的都扫一遍,很快就搞定了,整好过下自己之前的代码,不合理的地方还能优化,这个并不麻烦 逆向工程了解下 省事不少 用JpaRepository啊,Dao层基本不用写很多代码了。
public interface UserDAO extends JpaRepository<User,Integer> {
User findByUsername(String username);
User getByUsernameAndPassword(String username,String password);
}
修改的话只修改前端和POJO就可以了。
有其他的业务需求就得改Service层或者Controller了。 一般来说,公司有自己生成工具和架构,你说的这些问题其实重新映射实体就行了 springmvc 并没说要如何实现层,你可分成两层也是可以的或者一层(用JDBC)。一般中小型的项目采用分三层(controller - server - dao),这是比较合理的,当你仅仅只有一个 User 的功能,体现不出三层的优势,而且还代码多;但是当的功能越来越多,他的优势就非常明显,controller 接受web请求,server 编写业务逻辑,dao 可以看作是获取数据的来源(servier 和 dao 都是可以重用的)。如果现在理解不了,可以先用着,实际开发就能感受的到了{:301_997:} 这个和三层三层架构没关系吧,是你业务的变更引发的 不用啊,到时候添加字段后,直接在mapper添加一个新的查询语句,然后service dao等添加新的就好了,还有就是逆向工程可以根据数据库生成mapper和dao很方便,
页:
[1]