登录库
@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
,那么list将为null
,并将其发送回登录到主页。有人能帮我吗?
JPQL风格的位置参数使用问号声明,后跟序号-?1
,?2
.序数以1开头。与命名参数一样,位置参数也可以在查询中出现多次。
因此,您应该以这种方式更正您的查询:
select s.email, s.password from Student s where s.email=?1 and s.password=?2
我使用Spring Data JPA生成了一个非常简单的查询方法,但出现以下错误: 这是我的方法: 有什么想法吗?这让我特别困扰,因为我以前写过数百个这样的查询,而这个看起来非常正常。
我想执行mysql插入查询使用Hibernate,我有这个: 我发生了以下异常:, 线程“main”组织中出现异常。冬眠QueryParameterException:位置超出已声明序数参数的数量。请记住,序数参数是基于1的!职位:1 这里怎么了?
我想执行我的选择查询, @查询(value=“select*from data o,其中o.id=:id”,nativeQuery=true) 公共列表查找列表(整数id); 获取非法参数异常, 位置超出已声明顺序参数的数量。请记住,序数参数是基于1的!职位:1
我想使用hibernate执行本机/原始mysql查询,我有: 我得到的错误: 这里怎么了?
我有一个Hibernate Web应用程序,目前正在tomcat/CloudFoundry上运行,但当我尝试在JBoss上运行它时,我遇到了一些错误。 在我的DAO中,我创建了一个查询来按用户名加载用户,如下所示: 当我在Tomcat上运行应用程序时,上面的方法是有效的,但是当我在JBoss上运行应用程序时,我得到了以下错误: 我已经尝试更改为以下两个问题,但仍然没有成功: 上面给我同样的错误。因
数组要占用内存空间。程序员指定每个元素的类型和每个数组所要的元素,使编译器可以保留相应的内存空间。要告诉编译器对整型数组c保留12个元素,可以声明如下: int c[12]; 可以在一个声明中为几个数组保留内存。下列声明对整型数组 b 保留 100 个元素,对整型数组x保留27个元素: int b[100],x[27]; 数组可以声明包含其他数据类型。例如,char 类型的数组可以存放字符串。字符