学习MVC模式

来源:互联网 发布:常见的大数据存储系统 编辑:程序博客网 时间:2024/06/05 21:17
实现一个最简单的部门信息的CRUD,
如果你能做到修改数据结构而不用修改任何代码,

那么你就初步实现了业务逻辑和数据访问的分离;

其实,针对对象的操作,

CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。

一般在框架中是通过ORM来实现的,将对象的这些CRUD操作映射为对数据库的插入、查询、更新、删除操作,这个过程是通过ORM实现的。

同时,将数据库的一个表实体转换为一个类对象的过程,也是通过ORM来实现的。

但是,如果一个表实体的结构发生了改变,也同样需要修改映射配置文件,这是通过hibernate的反向生成映射文件的功能完成的。

如果映射配置信息也保存到数据库中,基本上就不用修改什么代码就可以实现将业务逻辑和数据访问分离开这样一个目标。

不知道hibernate在表结构发生变化的时候有没有修改映射配置文件呢,我想这个是必需的。


ORM中必然包括 一个对持久类对象进行CRUD操作的API类,这个类基本上也都会有增加、删除、修改、查询等方法的。

增加的话,即一个对象的保存到最后肯定会拼接成一个数据库的插入语句,基本上如果ID是自增的话,是需要考虑获取自增ID时的并发的。

修改的话,需要照顾到同步并发修改的情况,这是需要考虑的,如果A修改提交的时候B已经在修改了那么就需要给出提示,让其修改不能成功,这需要并发控制。

查询的话,需要根据前台传入的条件以及想要的结果列,拼接成一个where子句,最后合并到查询的SQL语句中,传给数据库服务器。

删除的话,需要最终拼接成一个删除的sql语句。

当然,做这些操作的时候如果跟其他对象有关联关系的,需要考虑数据的完整性,同步做一些对其他对象的操作。

比如多对多的关联关系中,如果A对象删除的话,那么至少应该保证关联关系表中A与B的关联关系应该删除掉。

同样如果有外键关系的话,需要先将外键对应的表删除掉,然后再将关联外键的表的该字段内容清空。


再如果,修改界面的查询条件或者列表而不用修改任何代码,
那么你就初步实现了业务逻辑和界面的分离;

能做到这些,就差不多是MVC的设计模式了
0 0
原创粉丝点击