今天麵試問到了這個問題,他的意思是讓剖析源碼嗎??突然感覺到好奇怪,,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 ${}和#{}有什麼區別,注意是大括號..