这是由于在JdbcTemplate类定义的查找方法里,如果数据为空,即所查找的数据不存在,不会返回null值,会直接报错
中断程序,抛出错误信息
如果需要判断是否存在目标数据才能执行下一步操作,例如登录操作,可以用两种方法
1、继承JdbcTemplate类,重写他的方法,当查找数据为空时,返回null值
例如重写queryForObject方法
2、主动捕捉异常,当发生异常时,捕获它,返回一个自己自定义的值
例如:
int a=1; User user= null; try { user = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),username); } catch (EmptyResultDataAccessException e) { a=0; } if(a==1){ System.out.println("注册失败,该用户已存在"); }else{ String sql1="insert into user values(?,?,?,?)"; Object[] params={null,username,password,nickname}; jdbcTemplate.update(sql1,params); System.out.println("注册成功!!!!"); System.out.println("欢迎,"+nickname+"用户"); }