網絡消費管理系統 會員消費管理系統 連鎖店網絡會員管理
收縮

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;
——再更新所有書的信息,將人的關系的內容保存進來。
正常的流程(控制反轉,將子表與父表關聯字段的使用控制權交給子表自己控制)是:
——保存人的信息,同時取得人的編號,將這些編號設置到書的內容里面;
——保存書的信息
熱點資訊
?

地址:江蘇省鎮江市丁卯新區智慧大道668號國家大學科技園8樓

電話:400-710-0511??傳真:0511-83993253

賬號:10319 001 040 007 936??開戶行:中國農業銀行鎮江大觀支行

鎮江網絡公司 鎮江網站建設 丹陽網絡公司 丹陽網站建設
2002-2020 ? 江蘇易潤信息技術有限公司 版權所有 ALL RIGHTS RESERVED. 未經許可 不得轉載 蘇ICP備 12035415號

蘇公網安備 32110102321163號

吉林快3专家预测与推荐