黄色片女人_av毛片国产_亚洲精品成_91视频a - 黄色三级网站

mybatis面試題及答案

時間:2022-12-09 13:32:20 面試技巧 我要投稿
  • 相關推薦

mybatis面試題及答案

  求職者如果想在求職MyBatis中力挫群雄,找到一份稱心如意的工作,就必須要做好求職前的準備。下面陽光網小編精心整理了一些mybatis面試題及答案的例文,希望可以幫到你!

mybatis面試題及答案

  1.講下MyBatis和Hibernate的區別?

  MyBatis是JDBC的輕量級封裝,把Sql和java代碼獨立出來,性能相對比較高,寫SQL語句相對于比較靈活,并且容易調試,一般用在大型項目中.

  Hibernate是JDBC的重量級封裝,開發速度比較快,但是性能比較低,調試不方便,一般適合對進度要求的比較高的中小型項目

  2.什么是MyBatis的接口綁定,有什么好處

  接口映射就是在IBatis中任意定義接口,然后把接口里面的方法和SQL語句綁定,我們直接調用接口方法就可以,

  這樣比起原來了SqlSession提供的方法我們可以有更加靈活的選擇和設置.

  3.接口綁定有幾種實現方式,分別是怎么實現的?

  接口綁定有兩種實現方式,一種是通過注解綁定,就是在接口的方法上面加上@Select @Update等注解里面包含Sql語句來綁定,另外一種就是通過xml里面寫SQL來綁定,在這種情況下,

  要指定xml映射文件里面的namespace必須為接口的全路徑名.

  4.什么情況下用注解綁定,什么情況下用xml綁定

  當Sql語句比較簡單時候,用注解綁定,當SQL語句比較復雜時候,用xml綁定,一般用xml綁定的比較多

  5.MyBatis實現一對一有幾種方式?具體怎么操作的

  有聯合查詢和嵌套查詢,聯合查詢是幾個表聯合查詢,只查詢一次,通過在resultMap里面配置association節點配置一對一的類就可以完成;

  嵌套查詢是先查一個表,根據這個表里面的結果的外鍵id,去再另外一個表里面查詢數據,也是通過association配置,但另外一個表的查詢通過select屬性配置

  mybatis面試題及答案(二)

  1.如果要查詢的表名和返回的實體Bean對象不一致,那你是怎么處理的?

  在MyBatis里面最主要最靈活的的一個映射對象的ResultMap,在它里面可以映射鍵值對, 默認里面有id節點,result節點,它可以映射表里面的列名和對象里面的字段名. 并且在一對一,一對多的情況下結果集也一定要用ResultMap

  2.MyBatis里面的動態Sql是怎么設定的`?用什么語法?

  MyBatis里面的動態Sql一般是通過if節點來實現,通過OGNL語法來實現,但是如果要寫的完整,必須配合where,trim節點,

  where節點是判斷包含節點有內容就插入where,否則不插入,trim節點是用來判斷如果

  動態語句是以and 或or開始,那么會自動把這個and或者or取掉

  3.MyBatis在核心處理類叫什么

  MyBatis里面的核心處理類叫做SqlSession

  4.IBatis和MyBatis在細節上的不同有哪些

  在sql里面變量命名有原來的#變量# 變成了#{變量} 原來的$變量$變成了${變量}, 原來在sql節點里面的class都換名字交type

  原來的queryForObject queryForList 變成了selectOne selectList

  原來的別名設置在映射文件里面放在了核心配置文件里

  5.講下MyBatis的緩存

  MyBatis的緩存分為一級緩存和二級緩存,一級緩存放在session里面,默認就有,二級緩存放在它的命名空間里,

  默認是打開的,使用二級緩存屬性類需要實現Serializable序列化接口(可用來保存對象的狀態),可在它的映射文件中配置

  mybatis面試題及答案(三)

  一.MyBatis(IBatis)的好處是什么

  ibatis把sql語句從Java源程序中獨立出來,放在單獨的XML文件中編寫,給程序的維護帶來了很大便利。

  ibatis封裝了底層JDBC API的調用細節,并能自動將結果集轉換成Java Bean對象,大大簡化了Java數據庫編程的重復工作。

  因為Ibatis需要程序員自己去編寫sql語句,程序員可以結合數據庫自身的特點靈活控制sql語句,

  因此能夠實現比hibernate等全自動orm框架更高的查詢效率,能夠完成復雜查詢。 ###12.MyBatis里面怎么處理分頁

  用插件分頁

  二.MyBatis里面怎么樣獲得剛插入的主鍵

  把節點的useGeneratedKeys=true設置先生成主鍵,然后keyProperty="id",把生成的主鍵指向屬性.

  三、如何獲取自動生成的(主)鍵值?

   方法總是返回一個int值 - 這個值代表的是插入的.行數。而自動生成的鍵值在

  方法執行完后可以被設置到傳入的參數對象中。

  示例:

  01.< id="Name" useGeneratedKeys="true" keyProperty="id">

  02.  into names (name) values (#{name})

  03.</>

  01.Name name = new Name();

  02.name.setName("Fred");

  03.

  04.int rows = mapper.Name(name);

  05.// 完成后,id已經被設置到對象中

  06.System.out.println("rows ed = " + rows);

  07.System.out.println("generated key value = " + name.getId());

  四、在mapper中如何傳遞多個參數?

  Java的反射機制并不能讓框架獲取到參數的名字(方法簽名中只有參數類型,可以說是為了優化,也可以說設計就是如此,總之名字無意義), 所以MyBatis默認的命名為: param1,param2……

  如果想給他們指定名稱,可以使用 @param注解:

  01.importorg.apache.ibatis.annotations.Param;

  02.public interface UserMapper {

  03. User selectUser(@Param("username") String username,

  04. @Param("hashedPassword") String hashedPassword);

  05.}

  然后,就可以在xml像下面這樣使用(推薦封裝為一個Map,作為單個參數傳遞給Mapper): 01.

  02. select id, username, hashedPassword

  03. from some_table

  04. where username = #{username}

  05. andhashedPassword = #{hashedPassword}

  06.

【mybatis面試題及答案】相關文章:

經典面試題及答案04-04

面試題及答案04-04

hibernate面試題及答案04-01

jquery面試題及答案04-01

oracle面試題及答案04-01

spring面試題及答案04-01

測試面試題及答案04-08

.net面試題及答案04-08

護士面試題及答案04-09