访问数据库返回值是0

我在mapper.xml中执行的SQL语句在navicat中可以执行成功,且返回值是2,可是在idea中执行返回值却是0,求各位大佬解惑

Mapper.xml中的语句:

<select id="selectByName" parameterType="String" resultType="int">
		select COUNT(*) from t_user where name = #{name};
	</select>

mapper.java中的语句:

public int selectByName(String name);

service中的语句

public int findByName(String name) {
		int num = userMapper.selectByName(name);
		System.out.println("chachachachachachacha"+num);
		return num;
	}

controller中的语句

@RequestMapping(value = "/checkName",method = RequestMethod.POST,consumes = "application/json")
	@ResponseBody
	public Boolean checkName(@RequestBody String name){
		System.out.println(name);
		int num=userService.findByName(name);

		System.out.println("00000000000000000000000000000"+num);
		if (num == 0){
			return true;
		}else{
			return false;
		}

	}

JSP中HTML的语句:

 <div class="layui-form-item">
                      <label for="username" class="layui-form-label">
                          <span class="x-red">*</span>用户名:
                      </label>
                      <div class="layui-input-inline">
                          <input type="text" id="username" name="name" value="wisdom"
                                 required="" lay-verify="username"
                                 autocomplete="off" class="layui-input">
                      </div>
                      <div class="layui-form-mid layui-word-aux">
                          <span class="x-red" lay-verify="name">*</span>将会成为您唯一的用户名
                      </div>
                  </div>

JSP中JS的语句

 form.verify({
                    username:function (value){
                        var datas=$('#username').val()
                        var message='';
                        var url = "${pageContext.request.contextPath}/system/user/checkName"
                        $.ajax({
                            url:url,
                            type:"post",
                            data:JSON.stringify(datas),//将name传递给controller
                            dataType:"json",
                            async:false,//让Ajax执行代码顺序同步
                            contentType:'application/json;charset=UTF-8',
                            success:function (data){
                               if (data==false){
                                   message="用户名已存在,请重新输入!!"
                               }
                            }
                        });
                        if (message!==''){
                            return message;
                        }

结果:

"wisdom"
2021-06-19 15:22:22.868 DEBUG 22452 --- [nio-8888-exec-3] c.wisdom.mapper.UserMapper.selectByName  : ==>  Preparing: select COUNT(*) from t_user where name = ?; 
2021-06-19 15:22:22.869 DEBUG 22452 --- [nio-8888-exec-3] c.wisdom.mapper.UserMapper.selectByName  : ==> Parameters: "wisdom"(String)
2021-06-19 15:22:22.870 DEBUG 22452 --- [nio-8888-exec-3] c.wisdom.mapper.UserMapper.selectByName  : <==      Total: 1
chachachachachachacha0
000000000000000000000000000000

 

wisdom 是你前台传递过来的参数吗,应该是映射文件没有获取到参数,修改下mapper.java试试

public int selectByName(@Param("name") String name);

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632