ORM概念
对象关系映射(Object Relational Mapping,简称ORM),解决 面向对象 与 关系型数据库 不匹配的技术。
对于 select 语句,将查询的每一行结果,封装到一个类对象中
对于 insert 语句,将要保存的数据封装到类对象中,然后通过该类对象 insert 数据库中
ORM在业务逻辑层和数据库层之间充当了桥梁的作用。
一句话概括
ORM采用面向对象的思想操作数据库进行增删改查,类对应表,类中的属性对应表中的字段
将数据库中的 表 与 实体类 (即:javabean)对应起来
将表中的 字段 与 实体类中的 属性 对应起来
例子
| 表 | 映射关系 | 类 |
|---|---|---|
| user | 表名 映射 类名 | User |
| id | 字段 映射 属性 | id |
| username | 字段 映射 属性 | username |
| password | 字段 映射 属性 | password |
| create_time | 字段 映射 属性(由于名字不完全相同,需要做额外处理) | createTime |
| update_time | 字段 映射 属性(由于名字不完全相同,需要做额外处理) | updateTime |
在执行select id,username,password,create_time,update_time from user 时,返回数据,封装在User对象中
ORM的优势
ORM解决的主要问题是对象和关系的映射。它通常把一个类和一个表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。
ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。
让软件开发人员专注于业务逻辑的处理,提高了开发效率。
ORM的劣势
ORM的缺点是会在一定程度上牺牲程序的执行效率。
ORM用多了SQL语句就不会写了,关系数据库相关技能退化…
ORM总结
ORM只是一种工具,工具确实能解决一些重复,简单的劳动。这是不可否认的。
但我们不能指望某个工具能一劳永逸地解决所有问题,一些特殊问题还是需要特殊处理的。
但是在整个软件开发过程中需要特殊处理的情况应该都是很少的,否则所谓的工具也就失去了它存在的意义。