84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
今天面试问到了这个问题,他的意思是让剖析源码吗??突然感觉到好奇怪,,ORM框架,不就是这样的吗??求大神解释。谢了
闭关修行中......
之前早上出门答得太急了,现在来细说一下,这里可以提到两点:
持久化
反序列化
那么持久化楼下各位都提到了,即将一个对象保存到存储系统中。在你说到的情况下,是保存到数据库。那么一般是将各个属性作为字段,然后保存其中的值成为一条记录。
然后是反序列化。跟数据库建立连接的是通过socket的,那么毫无疑问是走了网络,你在网络中需要传输一个对象就得对其进行序列化。也就是说:在通过数据库链接拿到 ResultSet 的时候就已经完成了反序列化过程。
socket
所以先常常sql, 看用下原始的jdbc , 你就知道为什么会有这框架了
一般面试官问到JDBC就到底了吧,所以@泊浮目 所说的反序列化我觉得不是面试官的意思。用原生的JDBC执行SQL可以拿到ResultSet对象,框架不过是从里面取一个个字段值,然后封装到一个对象中而已。我的理解就是这样,也确实没看过这种ORM的源码,虽然我用Mybatis比较顺手。
JDBC
SQL
ResultSet
ORM
Mybatis
这个和反序列化没什么关系吧。原始JDBC查询出的是ResultSet,Hibernate通过xml配置或Anotation知道了ResultSet中字段和对象属性的对应关系,然后通过反射的机制生成POJO对象。
这么巧,你发问题十六个小时后我面试被问到了同样的问题.我的回答基本和@邢爱明在本问题的回答一致.但是看反应,感觉并不是面试官想要的.个人觉得这种问题挺奇葩的.主要get不到其具体想考核哪方面的东西.
还有一个问题,我确认了几遍确定没听错,但是到现在也没弄懂问的是什么..jquery ${}和#{}有什么区别,注意是大括号..
之前早上出门答得太急了,现在来细说一下,这里可以提到两点:
持久化
反序列化
那么持久化楼下各位都提到了,即将一个对象保存到存储系统中。在你说到的情况下,是保存到数据库。那么一般是将各个属性作为字段,然后保存其中的值成为一条记录。
然后是反序列化。跟数据库建立连接的是通过
socket
的,那么毫无疑问是走了网络,你在网络中需要传输一个对象就得对其进行序列化。也就是说:在通过数据库链接拿到 ResultSet 的时候就已经完成了反序列化过程。所以先常常sql, 看用下原始的jdbc , 你就知道为什么会有这框架了
一般面试官问到
JDBC
就到底了吧,所以@泊浮目 所说的反序列化我觉得不是面试官的意思。用原生的JDBC
执行SQL
可以拿到ResultSet
对象,框架不过是从里面取一个个字段值,然后封装到一个对象中而已。我的理解就是这样,也确实没看过这种ORM
的源码,虽然我用Mybatis
比较顺手。这个和反序列化没什么关系吧。
原始JDBC查询出的是ResultSet,Hibernate通过xml配置或Anotation知道了ResultSet中字段和对象属性的对应关系,然后通过反射的机制生成POJO对象。
这么巧,你发问题十六个小时后我面试被问到了同样的问题.
我的回答基本和@邢爱明在本问题的回答一致.但是看反应,感觉并不是面试官想要的.
个人觉得这种问题挺奇葩的.主要get不到其具体想考核哪方面的东西.
还有一个问题,我确认了几遍确定没听错,但是到现在也没弄懂问的是什么..
jquery ${}和#{}有什么区别,注意是大括号..