`

hibernate之参数绑定注意点

阅读更多

1.Query查询时,使用q.setParameter的方式设置参数:

	Session s=HibernateSessionFactory.getSession();
		String hql="from Computer c where c.id=:id";
		Query q=s.createQuery(hql);
		q.setParameter("id",1);
		List l=q.list();
		for(int i=0;i<l.size();i++)
		{
			Computer c=(Computer)l.get(i);
			System.out.println(c.getName());
		}

 如果设置的参数id是Long型的,执行时就会报如下错误:

java.lang.ClassCastException: java.lang.Integer

 

 这是因为setParameter会根据参数的类型和实际传递的参数类型去判断,如果类型不一致就会报错。

分享到:
评论

相关推荐

    Hibernate的查询方式

    有两种主要的参数绑定形式: - 使用问号(`?`)作为占位符,然后通过`setXXX()`方法绑定具体值。例如,按学生名及年龄查询Students对象: ```java Query query = session.createQuery("from Students s where s...

    hibernate基本知识点

    3. **参数绑定**:通过反射机制获取实体对象的属性值,并将其绑定到SQL语句的相应位置。 4. **执行SQL**:执行构建好的SQL语句,并将结果反馈给调用者。 #### Hibernate配置详解 在`hibernate.cfg.xml`文件中,有...

    hibernate 4.3.10 版本的笔记

    实体映射是Hibernate的核心功能之一。这部分内容主要涉及如何使用XML映射文件和注解的方式来进行实体映射。 **XML映射文件示例:** - **Student.hbm.xml** 文件用于定义`Student`类与数据库表之间的映射关系。 - ...

    Hibernate日志jar包

    在使用Hibernate日志jar包时,需要注意以下几点: 1. 避免日志冲突:如果项目中同时存在多个日志库,可能会导致日志冲突。确保只引入一个日志实现,并正确配置。 2. 日志级别选择:根据生产环境和开发阶段,合理...

    Hibernate教程

    1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class 2.2.2. 映射文件 2.2.3. ...

    struts2整合hibernate

    对于Hibernate,可以启用参数绑定来避免SQL注入。 通过以上步骤,我们可以成功地将Struts2的控制层与Hibernate的数据持久层结合起来,实现Web应用的用户管理及分页查询功能。在实际开发中,还可以根据需求引入其他...

    Hibernate+中文文档

    3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...

    Eclipse中Hibernate简单配置和使用

    Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。 Criteria Criteria接口与Query接口非常类似,允许创建并执行面向对象的标准化查询。值得注意的是Criteria接口也是轻量级的,它不能在...

    Hibernate4实战 之第七部分

    ### Hibernate4实战之第七部分:最佳实践 #### 设计细颗粒度的持久类并使用`&lt;component&gt;`实现映射 在Hibernate中,细颗粒度的持久类是指将实体中的复杂属性拆分成单独的对象进行管理。例如,对于一个用户实体中的...

    hibernate学习笔记

    然而,需要注意的是,ActionForm中的数据在转发后不再有效,因此需要将表单数据封装到一个Bean中,以便与Hibernate交互。 3. **BeanUtils工具类**: `org.apache.commons.beanutils.BeanUtils`是一个实用工具类,...

    hibernate 3.1 存储过程

    Hibernate提供了绑定参数的方式,能有效防止这类攻击。 通过以上步骤,你可以在Hibernate 3.1中顺利地集成和使用存储过程。在实际项目中,根据具体需求调整和优化这些方法,可以进一步提高你的应用程序的效率和安全...

    hibernate连接池

    值得注意的是,连接池的参数调整需要根据应用的并发量、数据库性能以及资源限制等因素综合考虑,以达到最佳效果。 总结来说,Hibernate连接池是提升数据库访问效率的关键,它提供了多种连接池的集成,包括C3P0、...

    配置Hibernate使用C3P0连接池

    上述配置中,`hibernate.connection.provider_class`指定了使用C3P0作为连接池,其他各项参数则用于调整C3P0的行为,如最小连接数、最大连接数、超时时间、空闲检查周期等。 4. **数据库驱动配置** 在`hibernate....

    hibernate中session的管理

    SessionFactory的配置信息包括数据库连接参数、实体映射信息等,这些信息一旦设置好,就不会再改变。 接下来,我们来关注Session的管理。在传统的多线程Servlet环境下,如果将Session作为类变量存储,如上述例子中...

    Hibernate的char问题.txt

    参数绑定时注意类型一致性 在编写 HQL 或者 Native SQL 时,确保绑定的参数类型与数据库字段的类型保持一致。例如,在使用 `setParameter` 方法时,指定正确的类型: ```java Session session = HibernateUtil....

    hibernate3.2中文文档(chm格式)

    3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...

    HibernateAPI中文版.chm

    3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...

    hibernate整合memcached需要的jar包

    4. **slf4j-log4j12-1.5.0.jar**:这是一个SLF4J的绑定实现,它将SLF4J的日志调用路由到Log4j,Log4j是广泛使用的日志记录框架,提供了丰富的日志配置和输出格式,便于进行调试和监控。 整合Hibernate和Memcached的...

    Hibernate查询语言.doc

    Hibernate支持两种类型的参数绑定:JDBC风格的问号参数和命名参数。问号参数通过索引绑定,如`q.setString(0, "Izi")`。命名参数使用冒号前缀,如`:name`,它们更易读且与位置无关,可以在查询中多次使用。例如: ...

Global site tag (gtag.js) - Google Analytics