mybatis配置文件namespace用法总结
本文为博主原创,未经允许不得转载:
由于在应用过程中,发现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>