`
shicheng
  • 浏览: 165304 次
  • 性别: Icon_minigender_1
  • 来自: 泉州
社区版块
存档分类
最新评论

关于hibernate使用sql语句装载数据

阅读更多

在使用hibernate过程,对于复杂的查询,还是得使用sql语句来查询,但是查询出来的数据如何装载到bean中,因为查出来的数据可能会是关联好几个表里字段,对于这种情况,如何将这些字段直接装载到java bean中呢。下面给出一个例子,希望对大家有帮助。

 

实体类:

 

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.GenericGenerator;
@Entity
//表名与类名不相同时重新定义表名.
@Table(name = "demo")
//默认的缓存策略.
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Demo {
	@Id
	@Column(length = 32)
	@GeneratedValue(generator = "system-uuid")
	@GenericGenerator(name = "system-uuid", strategy = "uuid")
	private String id;
	@Column(nullable =true)
	private String name;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

 

SQL语句:

 

List list = this.getSession().createSQLQuery("select bankcar_id id ,carname name from Bankcar")
.addEntity(Demo.class).list(); for (int i = 0; i < list.size(); i++) { Demo d = (Demo)list.get(i); System.out.println(d.getId()); }

 

 

这个例子只是为了说明问题,没有实际的意义。

通过SQL语句中的别名可以装载到其他对象中的bean属性,只要名字一样就行。

还有,如果名字有重复的,那么以第一次出现的那个名字的值为准,后面的值将被忽略。

分享到:
评论

相关推荐

    基于springboot的mysql,sqlserver,oracle数据源切换

    例如,可以创建`UserRepository`接口,定义CRUD操作,并在实现类中具体实现这些方法,使用JPA或者MyBatis的查询语句。 控制层(Controller Layer)是接收HTTP请求并调用服务层的方法。例如,创建`UserController....

    最全Hibernate 参考文档

    10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出(flush) 10.11. 传播性持久化...

    Hibernate.pdf

    Hibernate的出现,可以解决传统JDBC编程时所遇到的许多问题,比如SQL语句的手工编码、数据库连接管理的复杂性以及数据模型到对象模型转换的困难等。Hibernate通过配置文件来定义Java对象和数据库中表的映射关系,...

    Hibernate教程

    11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象 11.10. Session刷出(flush) 11.11. 传播性持久化...

    jsp连接SQLServer,mysql,db2数据库[参考].pdf

    4. **创建SQL语句对象**:通过`Connection`对象调用`createStatement()`方法创建`Statement`对象,用于执行SQL语句。 5. **执行SQL语句**:利用`Statement`对象的`executeQuery()`方法执行查询,它会返回一个`...

    hibernate hql大全

    **Hibernate HQL 全攻略** ...以上内容覆盖了HQL的大部分核心特性,通过熟练掌握这些知识点,可以高效地在Hibernate中进行数据查询和操作。学习并实践这些HQL技巧,将极大地提升你在Java持久层开发中的能力。

    hibernate3.04中文文档.chm

    11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象 11.10. Session刷出(flush) 11.11. 传播性持久化...

    Hibernate3+中文参考文档

    10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出(flush) 10.11. 传播性持久化...

    Hibernate核心API

    Hibernate负责在应用层和数据库之间转换这些对象,使得开发人员能够以面向对象的方式操作数据库,而无需直接编写SQL语句。 #### 六、缓存策略 Hibernate支持一级缓存和二级缓存。一级缓存是`Session`级别的缓存,...

    hibernate 框架详解

    使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象 11.10. Session刷出(flush) 11.11. 传播性持久化...

    论文研究-基于JDBC的数据库访问研究 .pdf

    通过Connection对象,程序能够执行SQL语句,进行数据的增加、查询、更新和删除等操作。 研究最后提供了实现数据库访问的关键代码示例,这些代码展示了如何通过JDBC API加载驱动程序、建立连接以及执行数据库操作。...

    如何高效使用JavaEE ORM框架

    对象关系映射(Object-Relational Mapping,简称ORM)是一种程序技术,用于将关系型数据库中的数据映射为对象模型,使得开发者可以在面向对象的环境中操作数据库,而无需直接处理SQL语句。JavaEE环境下的ORM框架如...

    达内总结的java最新笔试题core java,sql,web应有尽有

    6. Hibernate中:不看数据库,不看XML文件,不看查询语句,怎么样能知道表结构? 7.目前几种主流数据库软件的应用特点、适用范围各是什么? 8.存储过程和函数的区别 9.试述数据库完整保护的主要任务和措施。 10.请...

    Java编程中主流数据库连接技术.pdf

    在使用JDBC时,通常包括四个步骤:装载数据库驱动、建立数据库连接、执行SQL语句以及断开连接。然而,频繁的连接建立和关闭会降低效率。 为了解决这个问题,引入了连接池技术。连接池预先创建一组数据库连接,并...

    java学生成绩管理系统

    - 合理使用SQL语句:避免使用全表扫描,尽量使用WHERE子句来过滤数据。 - 分页查询:当查询结果集较大时,可以采用分页的方式返回结果。 - **知识点2:排序算法** 对于查询结果的排序也是常见的需求。Java提供...

    Java面试题

    4. MyBatis支持动态SQL语句,可以构建灵活的SQL语句来适应不同的数据查询需求。 5. iBatis的核心配置文件包括mapper.xml文件,其中定义了SQL映射语句和SQL片段等。 七、Web Service部分 WebService是一种基于Web的...

    Spring、SpringMVC和Mybatis框架整合包

    另外,MyBatis也可以替换Hibernate,正因为MyBatis的半自动特点,我们程序猿可以完全掌控SQL,这会让有数据库经验的程序猿能开发出高效率的SQL语句,而且XML配置管理起来也非常方便。 好了,如果你也认同我的看法,...

    J2EE应用开发基础

    - **自定义DDL**:介绍了如何自定义数据定义语言(DDL)语句。 - **映射文件的模块化(Modularmappingfiles)**:通过模块化的映射文件来组织复杂的映射逻辑。 - **集合类**: - **持久化集合类...

Global site tag (gtag.js) - Google Analytics