本文為博主原創,未經允許不得轉載:
由於在應用過程中,發現namespace在配置文件中的重要性,以及配置的影響,在網上看了很多博客,發現很多人對namespace存在誤解,
所以總結一下namespace的用以及個人的理解:
官網(http://www.mybatis.org/mybatis-3/zh/getting-started.html)的解釋如下:
namespace即空間命名名稱,用於區分實現數據持久化的方式。namespace一般綁定對應的文件的全路徑,
有三種全路徑:namespace綁定實體類的全路徑,綁定dao接口的全路徑,綁定mapper的sql.xml文件。
第一種:namespace綁定實體類的全路徑:
當namespace綁定的是實體類的全路徑時,其實現數據持久化的方式為無代理模式實現數據持久化。
需要手動實現dao層的接口。
<mapper namespace="com.system.pojo.LiveInfo"></namespace>
第二種:namespace綁定dao層接口的全路徑:
當namespace綁定的是dao接口的全路徑時,其實現數據持久化的方式為有代理模式實現數據持久化。
即會自動產生代理,自動實現數據的持久化,不需要實現dao層的接口。
<mapper namespace="com.system.dao.LiveInfoDao"></namespace>
第三種:namespace綁定的是mapper接口對應的sql.xml文件是,其也是有代理模式自動實現數據持久化。
但mapper接口對應的sql.xml文件名必須保持一致才能自動實現數據持久化。
<mapper namespace="com.system.sql.LiveInfoMapper"></namespace>