Java經典面試題整理及答案詳解
作者:admin
發布日期:2020-05-06
學習Java建議還是多動手練習,很多時候你會發現想的和寫出來運行的不是一回事兒,本節內容大家可以根據題目自己練習看看~
1.使用MyBatis做模糊查詢的時候,在日志中看到執行了sql語句,但是查詢不到結果。
面對這樣的問題,如果可以看到后臺的日志出現有相關的信息顯示,那么就表示現在的整體環境搭建是沒有任何問題的,但是為什么數據沒有呢?
個人經驗總結有如下幾點:
(1) 你的數據庫里沒有符合條件的數據,觀察你的事務問題,更換一個新的客戶端連接;
(2) 你在使用模糊查詢的時候,所傳遞的參數可能就有問題,這個時候最好的解決方案,就是觀察數據層里面傳入的內容是否正確;
(3) 在使用模糊查詢的時候千萬要記住在關鍵字的左右增加一個“%”,如果沒有加,那么就不叫模糊查詢了;
(4) 你現在所連接的數據庫并不是你真正的數據庫。
2.在MyBatis的sql語句中使用if判斷傳遞過來的某參數是不是null是有效的,但是卻不能判斷空字符串。
動態SQL是依靠配置實現的,它只能夠判斷null。你可以在業務層的處理上追加一些判斷功能,例如:如果發現有內容為空字符串( ’’’’),那么你就為其設置null。
動態SQL很有幫助。
3.MyBatis和Hibernate中的set方法
MyBatis開發里面主要的核心是要求用戶自己來定義使用的SQL語句。而Hibernate特點由于其要考慮其可移植性的問題,所以在Hibernate處理之中,它所需要考慮的就是一個自動生成SQL問題。
現在所有問題都放在了POJO類(VO)、Hibernate下,如果該POJO類的對象處于持久態狀態,那么每一次調用setter方法都會更新數據(如果你的事務是手工控制,則在若干個setter調用后才會發出更新操作),而MyBatis沒有這樣的功能,因為Hibernate之中搞的這種對象的狀態設計有些糟糕,而且這也是Hibernate本身性能低的原因。追究其起源,主要是因為傳統的EJB(EntityBean)影響。
4.Resource與Autowired區別
在使用Spring的自動的Annotation注解的時候經常會見到兩類的注解:@Resource(個人常用)、@Autowired ,如果你想要了解這兩個的區別,最好的做法是先認真學完了spring依賴注入的時候講解過的自動配置操作,在spring里面自動配置的模式有兩類:按照類型、按照名稱。
@Autowired:則表示按照類型進行自動注入,缺點是如果類型相同,則無法注入;
@Resource:具備按照類型自動注入的特點,而后如果現在類型相同,則可以設置一個名稱,也就是說你使用@Component、@Service等注解設置自動掃描的時候可以設置一個名字,而這個名字就可在@Resource中使用了;
SpringBoot里面,因為其自動支持一些環境配置,如果使用的是Autowired,那么配置多個相同類型的Bean的話,將無法進行準確的注入操作。必須使用@Resource完成。
5.Hibernate控制反轉
現在所說的是Hibernate中針對關系的配置處理,控制反轉就是把控制權交給了對方,這種情況一般出現在數據的級聯關系配置上:一對多、多對多。
以一個程序的分析為例:一個人有多本書,在Hibernate的世界里充滿了神奇,它可以自動將沒有的數據進行增加處理。正常的流程,首先要有一個人,這個人會有一個編號,在進行書的信息添加的時候就需要把這個人的編號一起保存進去。
如果不配置控制反轉,它的處理:
——增加人的信息;
——增加所有書的信息,但此時人的保存的關聯字段內容是null;
——再更新所有書的信息,將人的關系的內容保存進來。
正常的流程(控制反轉,將子表與父表關聯字段的使用控制權交給子表自己控制)是:
——保存人的信息,同時取得人的編號,將這些編號設置到書的內容里面;
——保存書的信息
熱點資訊
- 鎮江網絡公司建議大家建
鎮江網絡公司認為一個網站的成功與否與做網站之前的網站規劃有很重要的關系。網站建立前應明確網站建設的目的, 確定網站的功能, 確定網站的規模, 投資成本, 進行必要的市場分析。...
- 鎮江網站建設為你說說響
科技的飛速發展, 手機屏幕的尺寸也是多種多樣的, 在網站建設制作過程中網站管理員的壓力是很大的, 如何使網站更好的兼容各種大小尺寸的移動終端, 已經成為一個重要的話題。圖片和...
- Java經典面試題整理及答案
學習Java建議還是多動手練習,很多時候你會發現想的和寫出來運行的不是一回事兒,本節內容大家可以根據題目自己練習看看~ 1.使用MyBatis做模糊查詢的時候,在日志中看到執行了s...
- 編程命名中的7+1個提示
1.- 變量應該是盡可能的望文知意。千萬不要使用教材中的命名方式。 好的變量 : daysDateRange, flightNumber, carColor. 壞的變量 :days, dRange, temp, data, aux 在我們的日常工作中,有很大數量的...
- 鎮江網絡公司為你說說選
大家都知道,網站是離不開域名的,很多人在制作網站之前,往往會糾結與域名的選擇,不知道怎樣的域名對網站是有利的。今天鎮江網絡公司就為你說說選擇域名需要注意的事項。...
- 卸載Win10中用不到的自帶應
任何操作系統都會有一些自帶應用,包括Windows。微軟新發布的Win10系統也和以往的版本一樣,有很多用不到的系統內置應用。雖然普通應用可以通過開始菜單中的卸載選項來清除,但系...