Ibatis和Mybatis?
Ibatis:2010年,apache的Ibatis框架停止更新,並移交給了google團隊,同時更名為MyBatis。從2010年后Ibatis在沒更新過,徹底變成了一個孤兒框架。一個沒人維護的框架注定被mybatis拍在沙灘上。
Mybatis:Ibatis的升級版本。
什么是Mybatis的接口綁定,有什么好處?
Mybatis實現了DAO接口與xml映射文件的綁定,自動為我們生成接口的具體實現,使用起來變得更加省事和方便。
什么情況用注解,什么情況用xml綁定?
注解使用情況:Sql語句簡單時
xml綁定使用情況:xml綁定 (@RequestMap用來綁定xml文件)
Mybatis在核心處理類叫什么?
SqlSession
查詢表名和返回實體Bean對象不一致,如何處理?
映射鍵值對即可
<result column="title" property="title" javaType="java.lang.String"/>
column:數據庫中表的列名
property:實體Bean中的屬性名
Mybatis的好處?
把Sql語句從Java中獨立出來。
封裝了底層的JDBC,API的調用,並且能夠將結果集自動轉換成JavaBean對象,簡化了Java數據庫編程的重復工作。
自己編寫Sql語句,更加的靈活。
入參無需用對象封裝(或者map封裝),使用@Param注解
Mybatis配置一對多?
<collection property="topicComment" column="id" ofType="com.tmf.bbs.pojo.Comment" select="selectComment" />
property:屬性名
column:共同列
ofType:集合中元素的類型
select:要連接的查詢
Mybatis配置一對一?
<association property="topicType" select="selectType" column="topics_type_id" javaType="com.tmf.bbs.pojo.Type"/>
property:屬性名
select:要連接的查詢
column:共同列
javaType:集合中元素的類型
獲取上一次自動生成的主鍵值?
select last _insert_id()
Mybatis如何分頁,分頁原理?
RowBounds對象分頁
在Sql內直接書寫,帶有物理分頁