使用springboot进行条件查询是,查不到数据,代码如下:
service:
public List<User> findByUserName(String userName) {
return resitory.findByUserName(userName);
}
controller:
@RequestMapping("/findByUserName")
public List<User> findByUserName(String UserName) {
return crudService.findByUserName(UserName);
}
repository:
public interface UserResitory extends JpaRepository<User, Integer>{
List<User> findByUserName(String userName);
}
App:
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
Domain:
@Entity
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String loginName;
private String userName;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", loginName=" + loginName + ", userName=" + userName + ", password=" + password + "]";
}
}
进行页面访问:
http://localhost:8080/findByUserName?userName=zz1
表:
查询结果:
后台显示:
Hibernate: select user0_.id as id1_0_, user0_.login_name as login_na2_0_, user0_.password as password3_0_, user0_.user_name as user_nam4_0_ from user user0_ where user0_.user_name is null
说明我的springboot是正常启动了的,只是查不到数据
解决方法:检查访问路径是否正确
发现是路径写错了
before:
http://localhost:8080/findByUserName?userName=zz1
after:
http://localhost:8080/findByUserName?UserName=zz1
结果:
小结:在访问路径中,?后面的参数名是与controller层的变量名一致,而不是与service中的名字一致!