美文网首页
SQL映射文件中namespace命名空间的作用

SQL映射文件中namespace命名空间的作用

作者: 问瑾遗 | 来源:发表于2019-04-06 13:46 被阅读0次

    一.便于区分相同id的SQL操作

    当多个xxxMapper.xml文件中的id值相同时,在使用SqlSession操作数据库时,mybatis就无法分辨我们要调用的哪个id的操作。在调用时采用“namespace.id”的方式便有利于区分。

    举例如下:
    xxxMapper.xml

    <mapper namespace="AAA">
            <select id="xxx" resultType="???">
                sql语句    
            </select>
    </mapper>
    

    yyyMapper.xml

    <mapper namespace="BBB">
            <select id="xxx" resultType="???">
                sql语句    
            </select>
    </mapper>
    

    SqlSession调用:

    sqlSession.selectList("AAA.xxx");
    //或是
    sqlSession.selectList("BBB.xxx");
    

    二. “接口-SQL映射”功能中namespace对应包名和接口名

    前面写代码时我们使用sqlSession.selectList("SQLID"),完全是在面向String字符串类型的SQLID编程,虽然能达到操作数据库的目的,但这种代码写法是不规范的。理想中规范的写法是面向接口编程。MyBatis提供了“接口-SQL映射”的功能。
    还记得使用MyBatis Generator工具操作MySQL数据库示例中生成的xxxMapper.xml与xxxMapper.java文件,两者是对应的,这就是“接口-SQL映射”。
    两者对应关系示例如下:

    //namespace对应包名和接口名
    //xxxMapper.xml
    <mapper namespace="mapping.UserinfoMapper">
    //xxxMapper.java
    package mapping;
    public interface UserinfoMapper {}
    
    //id对应方法名,parameterType对应参数类型
    //xxxMapper.xml
    <insert id="insert" parameterType="bean.Userinfo">
    //xxxMapper.java
    int insert(Userinfo record);
    

    参看:使用getMapper()面向接口编程

    相关文章

      网友评论

          本文标题:SQL映射文件中namespace命名空间的作用

          本文链接:https://www.haomeiwen.com/subject/dujriqtx.html