以下是百度摘抄:
~ mapper中的namespace是用来绑定dao接口的,即面向接口编程。
~ 当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句
~ 在同一次请求中不允许出现相同名称的方法、类和常量,但是在某些特殊的应用中必须要使用相同名称的方法、类和常量,需要把他们放到不同的空间里,这个空间就是命名空间。
~ 命名空间主要是为了解决命名冲突问题
~ 确保方法名称的唯一性,如果两个xml文件中的方法名一样,那么就用namespace区分。
总结:
namespace就是为了解决项目中名称重复的问题
因为在大型项目中,你可能会引用别的代码或者子项目等等,而你不知道它里面是否有与你定义的名称一模一样的类名、方法名、常量名,
或者你已经词穷,不知道该用什么词来定义词意相同的但实际上并不是同一个类、方法或常量的名字
此时就可以用namespace来避免这样的尴尬
Dao接口就是Mapper接口。接口的全限名,就是映射文件中的namespace的值;
我自己在框架这门课程里对mybatis的mapper的自行理解是:给这个某某mapper.xml文件一个空间,因为namespace的值就是这个xml文件的直接路径。而namespace就是给一个命名空间,只是这个名字是用来和其他同名的家伙进行区分