- 浏览: 415097 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
skying007:
...
Mysql coalesce() 函数认识和用法 -
kchiu:
关于这个心跳的发送和接收 晚上全是the fuccking s ...
socket心跳检测 -
bjsq618:
你的想法在大的物流公司已经实现了,只不过他们使用是GPS定位
ddd -
jiaguwen123:
2,AuthenticationHandler类的写法
pa ...
xfire客户端 -
sornor:
总结的不错哟!
Java中的函数yield(),sleep()和wait()的区别
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;
}
}
...
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;
}
}
...
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>
<!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()方法,就可以访问到视图中的字段了。
发表评论
-
入门 05 - Query接口
2012-09-05 08:13 1678入门 05 - Query接口 我 ... -
Hibernate 5种查询方式代码示例
2011-08-13 09:52 1711package com.cstp.hibernate; im ... -
Java Hibernate Criteria 用法
2010-11-07 23:43 508715.1. 创建一个Criteria 实例org.hibern ... -
hibernate技巧 封装查询结果
2010-11-07 23:30 1256hibernate技巧 封装查询结果 将hibernate 查 ... -
hibernate调用数据库自定义函数
2010-10-31 17:31 1732本文使用的是Oracle9i数据库,hibernate3.0, ... -
HibernateTemplate 的 find方法使用
2010-10-27 22:04 2323一、find(String queryString); ... -
hibernate分组查询
2010-10-26 21:54 1648private static final Str ... -
Hibernate Criteria
2010-10-10 21:58 996Hibernate QBC查询 QBC查询: ... -
论述Hibernate中抓取策略
2010-10-10 21:27 1340Hibernate抓取策略(fetch ... -
Hibernate3的DetachedCriteria支持
2010-10-10 08:42 918Hibernate3支持DetachedCriteria,这是 ... -
hibernate 中对象操作中evict方法和clear方法的区别
2010-09-14 10:11 1271session.evict(obj),会把指定的缓冲对象进行清 ... -
Hibernate三种状态的区分
2010-09-14 10:02 968Hibernate的对象有3种状态,分别为:瞬时态(Trans ... -
hibernate查询多对多数据范例
2010-09-03 16:38 1075public class StuDao<T> ex ... -
hibernate生成数据库表
2010-08-19 08:22 4144import org.hibernate.cfg.Config ... -
hibernate二级缓存
2010-08-19 07:56 1119二级缓存也称进程级的缓存或SessionFactory级的缓存 ... -
hibernate一级缓存
2010-08-18 23:11 1272一级缓存很短和session的生命周期一致,一级缓存也叫ses ... -
hibernate向MYSQL插入数据的乱码问题
2010-08-17 21:55 1287向数据库插入数据的时候出现乱码,解决办法: 一、数据库连接串 ... -
composite-id 学习
2010-08-15 17:10 1301组件作为联合标识符,必须满足: 它必须实现java.io.Se ... -
hibernate存储过程调用
2010-08-12 17:28 1608听说Hibenate3可以在执行 ... -
findMsgFluxByCp备忘
2010-08-12 14:21 905public List<MsgFlux> fin ...
相关推荐
总之,Hibernate视图提供了对数据库视图的封装,使得我们可以像操作普通实体一样处理视图数据。虽然视图通常用于只读操作,但结合Hibernate的映射机制,我们可以方便地在Java应用程序中使用视图,提高代码的可维护性...
本篇文档主要讨论了如何在Hibernate中使用映射视图来处理这种情况,特别是在面对无法直接使用原生SQL(native SQL)的情况下。 Hibernate是一个强大的Java对象关系映射(ORM)框架,它允许开发者将数据库操作转化为...
在本项目中,"用Struts2加Hibernate对学员信息进行增删改查操作",主要涉及了以下几个核心知识点: 1. **Struts2框架**:Struts2是一个MVC(Model-View-Controller)架构的Java框架,它提供了处理HTTP请求和响应的...
Eclipse Hibernate Synchronizer插件是一款强大的开发工具,它为Eclipse IDE提供了集成的Hibernate支持,使得数据库操作和对象关系映射(ORM)更加便捷。这个插件的主要目标是简化数据库与Java实体类之间的同步过程...
它们分别负责不同的职责:Struts作为MVC(模型-视图-控制器)框架处理请求和响应,Spring提供了依赖注入和事务管理,而Hibernate则是对象关系映射(ORM)框架,简化了数据库操作。在这个“Struts_Spring_Hibernate_...
它允许开发者将数据库操作转换为对Java对象的操作,从而降低了开发人员处理SQL和JDBC的复杂度,提高了开发效率。 【留言本系统概述】 基于Hibernate的简单留言本是一个基本的Web应用程序,它使用Hibernate作为数据...
Hibernate则简化了数据库操作,通过Java对象与数据库表的映射,我们可以直接对Java对象进行操作,而无需编写大量的SQL语句。Hibernate支持CRUD(创建、读取、更新、删除)操作,自动处理数据的持久化。它还提供了...
Spring MVC 用于构建应用程序的前端控制器,提供模型-视图-控制器(MVC)架构,而 Hibernate 是一个强大的对象关系映射(ORM)框架,负责数据库操作。整合这两个框架可以让我们在处理业务逻辑时更加高效和灵活。 ...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,而无需编写大量的SQL语句。在开发过程中,手动创建所有对应的Java POJO(Plain Old Java Object,简单Java对象)类...
Hibernate对持久化对象的操作 Hibernate是一款强大的ORM(Object-Relational Mapping)框架,它允许开发者用面向对象的方式来操作数据库。在《电子商城系统》项目中,Hibernate用于管理数据库中的持久化对象,包括...
Struts主要负责MVC(Model-View-Controller)架构的实现,提供控制层的功能,而Hibernate则是一个强大的对象关系映射(ORM)工具,用于简化数据库操作。将两者整合可以创建出高效、灵活的Web应用程序。 **Struts 2...
通过将Java类与数据库表关联,Hibernate自动处理SQL查询和结果集的映射,使得开发人员可以更专注于业务逻辑,而不是底层的数据库操作。标签中的"源代码"意味着我们可以深入研究项目的内部工作原理,这对于学习和理解...
Struts和Hibernate是Java Web开发中的两个重要框架,它们在构建...通过研究这个项目,开发者不仅可以学习到如何整合Struts和Hibernate,还能了解到如何在MyEclipse环境中进行开发,这对提升Java Web开发技能大有裨益。
Hibernate 是一个对象关系映射(ORM)框架,它将数据库操作转化为对Java对象的操作,消除了低级JDBC代码,提高了开发效率。通过Hibernate,开发者可以使用Java对象直接操作数据库,而无需关心SQL语句的编写。 在...
Hibernate支持多种数据库,提供了事务管理、缓存机制、一对多、多对一、一对一等多种关系映射,以及HQL(Hibernate查询语言)和Criteria查询,大大提高了开发效率。 在"SpringMVC+Hibernate实例"中,我们可以看到这...
SpringMVC、Hibernate和Spring是Java开发中三大核心框架,它们各自负责应用程序的不同层面:SpringMVC用于处理HTTP请求和响应,Hibernate则是持久层框架,负责数据库操作,而Spring作为全能容器,提供依赖注入和面向...
7. **DAO和Service层**:创建DAO接口和实现类,利用Hibernate的Session进行数据库操作。同时,创建Service层接口和实现类,将业务逻辑封装起来,这些类通常会依赖于DAO层。 8. **Controller层**:创建Spring MVC的...
通过Hibernate,开发者可以将数据库操作转换为对Java对象的操作,简化了数据库编程。Hibernate支持实体类、映射文件、HQL(Hibernate查询语言)等特性,使得数据库交互更加灵活和高效。 **2. Struts2框架** Struts2...
在这个案例中,我们使用了Java服务器页面(JSP)作为视图层,Hibernate作为持久层框架来处理数据库操作,实现了留言板的功能。下面我们将深入探讨这两个技术及其在留言板应用中的具体应用。 **1. JSP(Java Server ...