mybatis的namespace可以绑定接口,如果不写接口,直接用session进行操作的话,这

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis的namespace可以绑定接口,如果不写接口,直接用session进行操作的话,这相关的知识,希望对你有一定的参考价值。

mybatis的namespace可以绑定接口,如果不写接口,直接用session进行操作的话,这个还是要写的,此时又是什么作用,该怎么写?

首先,要明确namespace的作用,是mapper.xml中配置的作为唯一标识的名称,并没有什么特别的要求,只需要保证所有的mapper中名称空间唯一即可。注意必须有~
再其次明确你所说的绑定接口,也就是使用动态代理Mapper,不需要再书写接口的实现类。这时对namesapce就有要求了,要书写对应mapper接口的全路径,也就是包名.类名这种格式。无需多言,这个也必须有~
忘采纳~追问

等我回去思考一下你的回答,这会饥饿状态没精力思考。

参考技术A 你面向接口编程的时候namespace必须要和接口完全限定名(绝对路径)一致,面向接口编程用的就是session.getMapper()这种方式,实际上调用的还是什么session.selectOne()、selectList()等方法,使用session.selectList()等方法的时候就不是绑定接口的方式进行操作,这个时候namespace就可以胡乱写,只要和你session.selectList()等方法中提供的字符串一致即可

MyBatis之sql映射文件

MyBatis的强大之处就在于它的sql映射文件,下面介绍sql映射文件的几个顶级元素配置

1)mapper:映射文件的根元素节点,只有一个namespace(命名空间)

* 用于区分不同的mapper,全局唯一

* 绑定dao接口,即面向接口编程, 当,namespace绑定某一接口之后,可以不用写该接口的实现类,MyBatis会通过接口的完整的限定名查找到对应的mapper配置来执行sql语句,应此namespace的命名必须要跟接口同名。

2)cache:配置给定的命名空间的缓存

3)cache——ref:从其他冥冥空间的引用缓存配置

4)resultMap:用来描述数据库结果集和对象的对应关系

5) sql : 可以重用的sql块,也可以被其他语句引用

6) insert:映射插入语句

7) update :映射更新语句

1.使用select完成单条件查询

1〉dao曾方法  

 

 public List<User> findAll();

 

 

 

2〉xml文件  

 <select id="findAll" resultType="User">
        SELECT  * FROM  user 
    </select>

3〉测试方法

    public  void findAll(){
        Logger logger = Logger.getLogger(UserTest.class);
        SqlSession sqlSession = null;
        try {
            //3.创建sqlSession
            sqlSession = MyBatisUtil.createSqlSession();
           List<User> list = sqlSession.getMapper(IUserDao.class).findAll();
           for (User user : list){
            logger.debug("list---------->"+user.getUserName()+"\t"+user.getUserCode());
           }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
           MyBatisUtil.closeSqlSession(sqlSession);
        }

    }

 

以上是关于mybatis的namespace可以绑定接口,如果不写接口,直接用session进行操作的话,这的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis的SQL映射文件

MyBatis之sql映射文件

mybatis的mapper映射配置文件详解

mybatis 面试

mybatis

MyBatis2