spring MyBatis的相關面試題
- 2021 年 5 月 28 日
- 筆記
(相關面試題! 供參考!)
1.ORM框架有哪些?
MyBatis:半自動化框架(不是純ORM) 需要寫動態SQL語句,實體類和SQL語句之間建立映射關係
Spring:輕量級框架, Java EE的春天,當前主流框架(低耦合 高內聚)
解釋ORM : (Object Relational Mapping):表示對象 關係 映射:
-
- 編寫程式的時候,以面向對象的方式處理數據
- 保存數據的時候,以關係型資料庫的方式存儲
2. MyBatis和Spring的優點 分別是什麼?
MyBatis:SQL語句封裝在配置文件中,便於統一管理和維護,降低程式的耦合度
了解底層封裝過程
方便程式程式碼調試
Spring: 低侵入式設計
獨立於各種應用伺服器
依賴注入特性將組件關係透明化,降低了耦合度
面向切面編程特性允許將通用任務進行集中式處理
與第三方框架的良好整合 粘合劑
! !! Spring也是輕量級框架,站式框架, 可以提供對持久層的支援, 提供Web MVC框架
3. MyBatis的核心對象有哪些?
SqlSessionFactoryBuilder:
1.導入jar包
2.核心配置文件:configuration.xml
3.創建實體類
4.dao層+SQL映射文件-mapper.xml
5.創建測試類:
讀取核心文件:mybatis-config.xml
創建SqlSessionFactory對象。讀取配置文件
創建SqlSession對象
調用mapper文件進行數據操作
-
- resultType是直接表示返回類型 ,基本數據和複雜數據類型
- resultmap是對外部resultMap的引用 ,資料庫欄位資訊和實體類對象屬性不一致,複雜的聯合查詢,自由控制映射結果
-
- 控制反轉(Inversion of Control):名詞,指代內部轉外部,將組件對象的控制權從程式碼本身轉移到外部容器
- 依賴注入(Dependency Injection):操作,在內部拿數據,將組件的構建和使用分開
-
組件化思想:分離關注點,使用介面,不再關注實現
補充!!!
-
- 輕量級IOC容器:Pico Container、Avalon、Spring、HiveMind等。
- 超重量級IOC容器:EJB。
- 半輕半重IOC容器:JBoss,Jdon等。
面向切面.
-
- IOC:解 耦 合—實現組件之間的解耦,實現每個組件時只關注組件內部的事情 ,提高程式的靈活性和可維護性
- AOP:專心做事,作用主要是改變了OOP(Object Oriented Programming)面向對象編程的不足。
- 查<select id= 「介面中的方法名」 resultType=”返回值類型/完全限定名” parameterType=”傳入SQL語句的參數類型/完全限定名”></select>
- 刪<delect id= 「介面中的方法名」 parameterType=「傳入SQL語句的參數類型/完全限定名」 ></delect>
- 改<update id= 「介面中的方法名」 parameterType=”傳入SQL語句的參數類型/完全限定名 「></update>
- 增<insert id= 「介面中的方法名」 parameterType=「傳入SQL語句的參數類型/完全限定名 」></insert>
!!屬性:resultType,parameterType
!!傳入SQL語句的參數類型可以是:
-
- url 「發送請求地址」
- type 「請求方式」
- data 「發送伺服器的數據」
- dataType 「預期伺服器返回的數據類型」
- success 「成功調用的」
- error 「請求失敗調用的」