您的位置:首页 > 运维架构 > Apache

org.apache.ibatis.binding.BindingException: Type interface dxm.com.mapper.UserMapper is not known to

2016-11-11 14:27 591 查看
Exception in thread "main" org.apache.ibatis.binding.BindingException: Type interface dxm.com.mapper.UserMapper is not known to the MapperRegistry.
at org.apache.ibatis.binding.MapperRegistry.getMapper(MapperRegistry.java:47)
at org.apache.ibatis.session.Configuration.getMapper(Configuration.java:655)
at org.apache.ibatis.session.defaults.DefaultSqlSession.getMapper(DefaultSqlSession.java:222)
at dxm.com.web.UsersCRUD.testDelete(UsersCRUD.java:33)
at dxm.com.web.UsersCRUD.main(UsersCRUD.java:23)

mapper中将接口类配置, 同时将xml的命名空间也也映射到了接口,注释掉接口类的配置。

<mappers>
<mapper resource="dxm/com/mapper/userMapper.xml" />
<mapper resource="dxm/com/mapper/OrderMapper.xml" />
<mapper resource="dxm/com/mapper/clazzMapper.xml" /> 

<!-- <mapper class="dxm.com.mapper.UserMapperDao" />
       <mapper class="dxm.com.mapper.UserMapperI" />  
               <mapper class="dxm.com.mapper.UserMapper"/> -->
</mappers>

经过多番测试 正确的配置方式有一些两种

第一种 配置 中加载 xml,xml文件的namespace对应 接口完全限定名。

     <mappers>
<mapper resource="dxm/com/mapper/userMapper.xml" />

</mappers>

第二种  配置接口  接口中包含注解的sql语句

       <mappers>
               <mapper class="dxm.com.mapper.UserMapper"/> -->
</mappers>

--------------------------------------------------------------------------------------------------------------

第一种包含内容

userMapper.xml  文件内容:

<mapper namespace="dxm.com.mapper.UserMapperDao">

 

 <select id="getUserOne" parameterType="int" resultType="_User">

   select *from user where userid=#{_parameter}

 </select>

<select id="getAllUser" resultType="_User">

  select * from user 

</select>

<insert id="insertUser" parameterType="_User">

  insert into user(userid,username,others) values(#{userid},#{username},#{others})

</insert>

<update id="updateUdser" parameterType="_User">

      update user

      set username=#{username},others=#{others}

      where userid=#{userid}

</update>

   <delete id="deleteUser" parameterType="int">

      delete from user where userid=#{userid}

   </delete>

 

 

  <insert id="insertBatch" parameterType="java.util.List">

      insert into user(userid,username,others) values

   <foreach collection="list" item="item" separator=",">

      (#{item.userid},#{item.username},#{item.others})

   </foreach>

</insert>

 

</mapper>

接口内容

public interface UserMapperDao {

public int add(User user);

 
public int delete(int id);

 
public int update(User user);

 
public User getUser(int id);

 
 
public int addOne(User user);

 
public int deleteOne(int id);

 
public int updateOne(User user);

 
public User getUserOne(int id);

 
public  List<User> getUserAll();

public int insertBatch(List<User> list);

}

第二种接口  定义内容:

public interface UserMapper {

@Insert("insert into user(userid,username,others) values(#{userid},#{username},#{others})")
public int add(User user);

@Delete(" delete from user where userid=#{id}")
public int delete(int id);

@Update("update user set username=#{username},others=#{others} where userid=#{userid}")
public int update(User user);

@Select("select *from user where userid=#{id}")
public User getUser(int id);

 
@Insert("insert into user(userid,username,others) values(#{userid},#{username},#{others})")
public int addOne(User user);

@Delete(" delete from user where userid=#{id}")
public int deleteOne(int id);

@Update("update user set username=#{username},others=#{others} where userid=#{userid}")
public int updateOne(User user);

@Select("select *from user where userid=#{id}")
public User getUserOne(int id);

@Select("select *from user")
public  List<User> getUserAll();

 

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐