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();
}