1.ORM里的Entity类 对应着 数据库里的表吗
2.那么Entity对象 对应着什么呢? 我看的几个示例都是好像把Entity对象的集合作为一个查询结果集来进行遍历,所以说Entity对象实际上是作为一个数据库里的row?
补充提问:
3.学习ORM之前是不是得先学学JDBC
1.ORM里的Entity类 对应着 数据库里的表吗
2.那么Entity对象 对应着什么呢? 我看的几个示例都是好像把Entity对象的集合作为一个查询结果集来进行遍历,所以说Entity对象实际上是作为一个数据库里的row?
补充提问:
3.学习ORM之前是不是得先学学JDBC
15 回答8.4k 阅读
8 回答6.2k 阅读
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
【问题一 & 二】
不一定,取决于你使用的 ORM 能干什么。毕竟是个“Mapping”,那么能映射到什么程度,都是可以的。
有一些 ORM 只是提供了 Lambda/QueryBuilder 之类的的写法,避免了你手动拼 SQL。这种 ORM 那就是 Entity 类就是和数据库表一一对应的,除了提供了个强类型约束(弱类型语言里甚至连这个都没有)以外就没别的了。这种就是最简单的 Mapping。
另一部分 ORM 会带有“导航属性/对象导航”之类的功能。这种的就可能一个 Entity 类对应一张表;也可能一个 Entity 类对应多张表;还可能多一个 Entity 类对应一张表。
举个例子(以下都是伪代码)——
假设存在两张表“部门”和“员工”:
在带有“导航属性/对象导航”功能的 ORM 框架中,你可以直接定义 Entity 类为:
注意到特殊的地方了吗?
这是比较主要的区别。事实上还会有很多区别,但都相对来说比较依赖 ORM 的具体实现,而非共同的区别,所以就不在这里一一列举了。
P.S. 初学者建议先别纠结这些概念上的东西,概念会有助于你加深理解,却对上手无甚帮助。等到你会用了以后再了解这些也不迟。
【问题三】
一般情况下不需要你手动调用 JDBC,但了解底层实现有助于你更好地掌握并掌握上层框架。