【发布时间】:2021-02-03 06:32:41
【问题描述】:
登录库
@Repository
public class LoginRepository {
@Autowired
private HibernateTemplate hibernateTemplate;
public List logDetails(Student st) {
List list=hibernateTemplate.find("select email,password from Student where email='?' and password='?'",st.getEmail(),st.getPassword());
return list;
}
}
登录服务
@Service
public class LoginService {
@Autowired
private LoginRepository logRepo;
public List serLogin(Student s) {
List li = logRepo.logDetails(s);
return li;
}
}
登录控制器
@Controller
public class LoginController {
@Autowired
private LoginService logSer;
@RequestMapping("/login")
public String loginPage(Map<String, Object> map) {
Student s = new Student();
map.put("log", s);
System.out.println("Inside Login Controller");
return "login";
}
@RequestMapping(value = "/saveLog", method = RequestMethod.POST)
public String saveLogin(@ModelAttribute("log") Student s, Map<String, Object> map) {
List list = logSer.serLogin(s);
if (list == null) {
return "login";
} else {
map.put("log", s);
return "home";
}
}
}
错误
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/SpringMVC-web] threw exception [Request processing failed; nested exception is org.springframework.orm.hibernate3.HibernateQueryException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 1; nested exception is org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 1] with root cause
org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 1
at org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterDescriptor(ParameterMetadata.java:81)
at org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterExpectedType(ParameterMetadata.java:87)
at org.hibernate.impl.AbstractQueryImpl.determineType(AbstractQueryImpl.java:445)
at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:417)
at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:918)
at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:912)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912)
at com.pp.repository.LoginRepository.logDetails(LoginRepository.java:16)
at com.pp.service.LoginService.serLogin(LoginService.java:17)
at com.pp.controller.LoginController.saveLogin(LoginController.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
我实际上是在这里检查记录时输入的数据是否存在于数据库中。如果数据是null,那么列表将是null,它会返回登录否则到主页。
谁能帮帮我。
【问题讨论】:
-
不确定这是否可行,但我没有使用单引号 '' ?...尝试删除那个
标签: hibernate spring-mvc repository