只要使用接口,就必須知足四個條件:mysql
* 一、映射文件namespace必須是接口全類路徑名
* 二、映射文件Statement的id必須和接口方法名相同
* 三、接口和映射文件必須在同一個目錄,且名稱相同
* 四、輸入參數類型必須和parameterType參數類型一致
* 五、輸出參數ResultType必須和接口方法返回值類型一致* git
若是sqlMapConfig.xml中引入外部映射文件使用
<mappers>
<mapper resource="sqlMap/user.xml"/>
</mappers>
則是上面的4個條件,去掉條件3程序員
若是直接寫接口,就必須知足上面全部條件。
<mapper class="cn.itcast.dao.IUserDao"/>
<package name="cn.itcast.dao"/>github
properties 引入外部文件sql
優秀:
簡單,易學,更快數據庫
dom解析,所有加載到內存之中mybatis
mybatis,hibernate,jpa比較app
mybatis和hibernate區別:(本身寫)
首先,mybatis沒有,XX.hbm.xml的配置文件。減輕了負擔
使用mybatis接口代理方式開發mapper接口,不用寫實現類,輸入參數和pojo包裝對象,保證了dao的通用性。dom
mybatis和hibernate
Mybatis和hibernate都是對jdbc封裝:
Hibernate優勢:
徹底面向對象,不須要咱們本身寫sql語句
數據庫遷移,hibernate使用面向對象開發,只須要修改方言
Hibernate缺點:
Hibernate維護關係對咱們是透明的,維護關係比較複雜,性能調優也是比較複雜。
Hibernate:把Hql變成sql語句再進行執行。速度變慢
Hibernate:mysql生成sql語句不規範,不易挑錯。
Hibernate:因爲使用面向對象開發,不能開發複雜業務。
使用與需求變化比較少的項目:CRM,ERP
Mybatis:mybatis簡化程序員的工做,把精力放在sql語句上面。適合開發複雜業務。對項目維護,調優比較容易。尤爲是需求變化特別快的項目都採用mybatis來開發(互聯網項目)性能