`
jiaguwen123
  • 浏览: 413959 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Hibernate对视图的操作

阅读更多

Hibernate对视图进行操作时和对普通的表有些不同,下面就是一个Hibernate操作视图的例子:
视图:
SELECT a.SPID, a.SPKey, b.serviceID, b.serviceName, c.serviceItemID, c.itemName
FROM dbo.tbSPInfo a
INNER JOIN dbo.tbService b ON a.SPID = b.SPID LEFT OUTER JOIN
dbo.tbServiceItem c ON b.serviceID = c.serviceID

1.首先根据视图中的字段定义一个bean

package com.txsec.lc.is.bean;

import
 java.io.Serializable;

public class ServiceId implements Serializable 
{
    
private static final long serialVersionUID = -2298938310945830572L
;
    
private
 String spId;
    
private
 String spKey;
    
private
 String serviceId;
    
private
 String serviceName;
    
private
 String serviceItemId;
    
private
 String itemName;
    
public ServiceId() ...
{
        
super
();
    }

    
public String getItemName() ...{
        
return
 itemName;
    }

    
public void setItemName(String itemName) ...{
        
this.itemName =
 itemName;
    }

    
public String getServiceId() ...{
        
return
 serviceId;
    }

    
public void setServiceId(String serviceId) ...{
        
this.serviceId =
 serviceId;
    }

    
public String getServiceItemId() ...{
        
return
 serviceItemId;
    }

    
public void setServiceItemId(String serviceItemId) ...{
        
this.serviceItemId =
 serviceItemId;
    }

    
public String getServiceName() ...{
        
return
 serviceName;
    }

    
public void setServiceName(String serviceName) ...{
        
this.serviceName =
 serviceName;
    }

    
public String getSpId() ...{
        
return
 spId;
    }

    
public void setSpId(String spId) ...{
        
this.spId =
 spId;
    }

    
public String getSpKey() ...{
        
return
 spKey;
    }

    
public void setSpKey(String spKey) ...{
        
this.spKey =
 spKey;
    }

}

...


2.定义一个bean,用组合方式将ServiceId包含进去

package com.txsec.lc.is.bean;

import java.io.Serializable;

public class ServiceView implements Serializable {
    
private static final long serialVersionUID = -2909733442648785569L;
    
private ServiceId id;
    
public ServiceView() ...{
        
super();
    }

    
public ServiceId getId() ...{
        
return id;
    }

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

}

...


3.映射文件

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>

<hibernate-mapping>
 
<class name="com.txsec.lc.is.bean.ServiceView" table="vwSPService">
  
<composite-id name="id" class="com.txsec.lc.is.bean.ServiceId">
   
<key-property name="spId" type="string">
    
<column name="SPID"/>
   
</key-property>
   
<key-property name="spKey" type="string">
    
<column name="SPKey" />
   
</key-property>
   
<key-property name="serviceId" type="string">
    
<column name="serviceID" />
   
</key-property>
   
<key-property name="serviceName" type="string">
    
<column name="serviceName"/>
   
</key-property>
   
<key-property name="serviceItemId" type="string">
    
<column name="serviceItemID"/>
   
</key-property>
   
<key-property name="itemName" type="string">
    
<column name="itemName" />
   
</key-property>
  
</composite-id>
 
</class>
</hibernate-mapping>


ok,用HQL进行查询时,就可以这样:
session.createQuery("from ServiceView sv where sv.id.serviceId = '100001'").list();

查询返回的是ServiceView对象或集合,要得到视图中字段的值,只需要调用ServiceView对象的getId()方法即可获得ServiceId对象,通过ServiceId对象的getXXX()方法,就可以访问到视图中的字段了。

分享到:
评论

相关推荐

    hibernate 视图

    总之,Hibernate视图提供了对数据库视图的封装,使得我们可以像操作普通实体一样处理视图数据。虽然视图通常用于只读操作,但结合Hibernate的映射机制,我们可以方便地在Java应用程序中使用视图,提高代码的可维护性...

    J2EE企业级项目开发-1期 06 hibernate映射视图的使用经验.doc

    本篇文档主要讨论了如何在Hibernate中使用映射视图来处理这种情况,特别是在面对无法直接使用原生SQL(native SQL)的情况下。 Hibernate是一个强大的Java对象关系映射(ORM)框架,它允许开发者将数据库操作转化为...

    用struts2加hibernate对学员信息进行增删改查操作

    在本项目中,"用Struts2加Hibernate对学员信息进行增删改查操作",主要涉及了以下几个核心知识点: 1. **Struts2框架**:Struts2是一个MVC(Model-View-Controller)架构的Java框架,它提供了处理HTTP请求和响应的...

    Eclipse Hibernate Synchronizer插件操作数据库

    Eclipse Hibernate Synchronizer插件是一款强大的开发工具,它为Eclipse IDE提供了集成的Hibernate支持,使得数据库操作和对象关系映射(ORM)更加便捷。这个插件的主要目标是简化数据库与Java实体类之间的同步过程...

    Struts_Spring_Hibernate_CRUD操作案例_-分页查询

    它们分别负责不同的职责:Struts作为MVC(模型-视图-控制器)框架处理请求和响应,Spring提供了依赖注入和事务管理,而Hibernate则是对象关系映射(ORM)框架,简化了数据库操作。在这个“Struts_Spring_Hibernate_...

    基于hibernate的简单留言本

    它允许开发者将数据库操作转换为对Java对象的操作,从而降低了开发人员处理SQL和JDBC的复杂度,提高了开发效率。 【留言本系统概述】 基于Hibernate的简单留言本是一个基本的Web应用程序,它使用Hibernate作为数据...

    使用springmvc+hibernate完成增删改查

    Hibernate则简化了数据库操作,通过Java对象与数据库表的映射,我们可以直接对Java对象进行操作,而无需编写大量的SQL语句。Hibernate支持CRUD(创建、读取、更新、删除)操作,自动处理数据的持久化。它还提供了...

    spring mvc整合hibernate

    Spring MVC 用于构建应用程序的前端控制器,提供模型-视图-控制器(MVC)架构,而 Hibernate 是一个强大的对象关系映射(ORM)框架,负责数据库操作。整合这两个框架可以让我们在处理业务逻辑时更加高效和灵活。 ...

    hibernate自动生成Pojo

    Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,而无需编写大量的SQL语句。在开发过程中,手动创建所有对应的Java POJO(Plain Old Java Object,简单Java对象)类...

    Struts工作原理和机制 hibernate对持久化对象的操作

    Hibernate对持久化对象的操作 Hibernate是一款强大的ORM(Object-Relational Mapping)框架,它允许开发者用面向对象的方式来操作数据库。在《电子商城系统》项目中,Hibernate用于管理数据库中的持久化对象,包括...

    struts+hibernate整合jar包

    Struts主要负责MVC(Model-View-Controller)架构的实现,提供控制层的功能,而Hibernate则是一个强大的对象关系映射(ORM)工具,用于简化数据库操作。将两者整合可以创建出高效、灵活的Web应用程序。 **Struts 2...

    Hibernate做的留言板

    通过将Java类与数据库表关联,Hibernate自动处理SQL查询和结果集的映射,使得开发人员可以更专注于业务逻辑,而不是底层的数据库操作。标签中的"源代码"意味着我们可以深入研究项目的内部工作原理,这对于学习和理解...

    struts+hibernate 项目

    Struts和Hibernate是Java Web开发中的两个重要框架,它们在构建...通过研究这个项目,开发者不仅可以学习到如何整合Struts和Hibernate,还能了解到如何在MyEclipse环境中进行开发,这对提升Java Web开发技能大有裨益。

    springmvc spring hibernate整合Demo

    Hibernate 是一个对象关系映射(ORM)框架,它将数据库操作转化为对Java对象的操作,消除了低级JDBC代码,提高了开发效率。通过Hibernate,开发者可以使用Java对象直接操作数据库,而无需关心SQL语句的编写。 在...

    SpringMVC+hibernate实例

    Hibernate支持多种数据库,提供了事务管理、缓存机制、一对多、多对一、一对一等多种关系映射,以及HQL(Hibernate查询语言)和Criteria查询,大大提高了开发效率。 在"SpringMVC+Hibernate实例"中,我们可以看到这...

    SpringMVC+Hibernate+Spring整合实例

    SpringMVC、Hibernate和Spring是Java开发中三大核心框架,它们各自负责应用程序的不同层面:SpringMVC用于处理HTTP请求和响应,Hibernate则是持久层框架,负责数据库操作,而Spring作为全能容器,提供依赖注入和面向...

    springmvc+spring+hibernate

    7. **DAO和Service层**:创建DAO接口和实现类,利用Hibernate的Session进行数据库操作。同时,创建Service层接口和实现类,将业务逻辑封装起来,这些类通常会依赖于DAO层。 8. **Controller层**:创建Spring MVC的...

    Hibernate之struts2整合hibernate以及MVC分层架构的使用案例hibernate002

    通过Hibernate,开发者可以将数据库操作转换为对Java对象的操作,简化了数据库编程。Hibernate支持实体类、映射文件、HQL(Hibernate查询语言)等特性,使得数据库交互更加灵活和高效。 **2. Struts2框架** Struts2...

    JSP+Hibernate实现留言板

    在这个案例中,我们使用了Java服务器页面(JSP)作为视图层,Hibernate作为持久层框架来处理数据库操作,实现了留言板的功能。下面我们将深入探讨这两个技术及其在留言板应用中的具体应用。 **1. JSP(Java Server ...

Global site tag (gtag.js) - Google Analytics