0 errors 0 warnings 2018-12-24 16:52 采纳率: 0%
浏览 6343
已结题

MyBatis中一个Dao接口文件如何对应多个SQL映射文件(Mapper)

  在仅使用MyBatis框架的基础上(不与Spring等进行整合),我的项目中有一个接口UserDao,具体接口代码如下:

  当采用Mapper动态代理时,一般是创建一个SQL映射文件UserMapper.xml,然后将该SQL映射文件的mapper标签中的namespace设为该UserDao接口的类名,以此来实现Mapper动态代理。

  最后在测试方法中通过SqlSession类实例对象sqlSession的getMapper(UserDao.class)方法获取该接口实现类,并调用接口中的方法完成对数据表的操作。

  那么,现在我的问题是,如果现在想要两个SQL映射文件UserMapper1和UserMapper2均与UserDao接口文件相对应,该如何实现呢?

  本人Java新手,请各位大佬不吝赐教,小弟定当感激不尽。

  UserDao接口代码

package com.ccff.mybatis.dao;

import com.ccff.mybatis.model.User;

import java.util.List;

public interface IUserDao {

    //查询所有用户,以List形式返回
    public List<User> findAllUserToList();
}

  UserMapper映射文件代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.ccff.mybatis.dao.IUserDao">

    <select id="findAllUserToList" resultType="User">
        select * from user
    </select>

</mapper>
  • 写回答

3条回答 默认 最新

  • 阿进的写字台 2018-12-24 09:33
    关注

    根据我阅读源码的情况, 答案是应该不可以。。一个namespace对应一个mapper.xml文件, namespace不可以重复。

    还有, 你为什么想这么做?

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!