dao层接口如下
//添加用户,返回受影响的行数
int addUser(User user);
service层
//执行添加操作,判断受影响的行数 //int row=userMapper.addUser(user);
AssertUtil.isTrue(userMapper.addUser(user)<1,"添加用户失败");
UserMapper.xml 中SQL语句如下
<select id="queryUserByID">
insert into users(name,password)
values (#{name},#{password})
</select>
报错如下
org.apache.ibatis.binding.BindingException: Mapper method attempted '.......'
to return null from a method with a primitive return type (int).
解决办法:UserMapper.xml 中select改成insert标签,因为这里是插入语句,标签是select所以返回受影响的行数固然为null
修改后的 UserMapper.xml 中SQL语句如下
<insert id="queryUserByID">
insert into users(name,password)
values (#{name},#{password})
</insert>
如果若标签没有写错,还有一种可能:将dao层的返回类型改为Integer即可。
因为SQL语句未查询到数据,返回为null。而我们定义的dao层方法是返回为int
Ingeter是int的包装类,int的初值为0,Ingeter的初值为null