Hibernate从入门到精通(2)-component(组件)

2024-06-10 02:48

本文主要是介绍Hibernate从入门到精通(2)-component(组件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Hibernate使用组件(component)

基于映射文件

hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property><property name="hibernate.connection.password">xukai</property><property name="hibernate.connection.url">jdbc:oracle:thin:@10.25.116.164:1521:orcl</property><property name="hibernate.connection.username">xukai</property><property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property><!-- <property name="hibernate.hbm2ddl.auto">create</property> --><property name="hibernate.show_sql">true</property><property name="hibernate.format_sql">true</property><strong><mapping resource="com/edu/entity/People.hbm.xml"/></strong></session-factory>
</hibernate-configuration>

People.java(getter.setter省略)
package com.edu.entity;import java.io.Serializable;public class People implements Serializable{private static final long serialVersionUID = 1L;private Integer peopleId;private String peopleName;private Address address;}
组件类: Address.javagetter.setter省略
package com.edu.entity;public class Address {private String parentName;private String childName;}
People.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2015-10-27 8:44:47 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping><class name="com.edu.entity.People" table="PEOPLE"><id name="peopleId" type="java.lang.Integer"><column name="PEOPLEID" /><generator class="sequence" ><param name="sequece">seq_people_id</param></generator></id><property name="peopleName" type="java.lang.String"><column name="PEOPLENAME" /></property><!-- Bean中的属性名 --><component name="address" class="com.edu.entity.Address"><!-- 表中的列名 --><property name="parentName" type="java.lang.String"><column name="PARENT_NAME" length="20"></column></property><!-- 表中的列名 --><property name="childName" type="java.lang.String"><column name="CHILD_NAME" length="20"></column></property></component></class>
</hibernate-mapping>

基于注解

hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property><property name="hibernate.connection.password">xukai</property><property name="hibernate.connection.url">jdbc:oracle:thin:@10.25.116.164:1521:orcl</property><property name="hibernate.connection.username">xukai</property><property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property><!-- <property name="hibernate.hbm2ddl.auto">create</property> --><property name="hibernate.show_sql">true</property><property name="hibernate.format_sql">true</property><strong><mapping class="com.edu.entity.People"/></strong></session-factory>
</hibernate-configuration>

People(省略getter,setter):
package com.edu.entity;import java.io.Serializable;import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;@Entity
@Table(name="people")
public class People implements Serializable{private static final long serialVersionUID = 1L;@Id@SequenceGenerator(name="seq_gener",sequenceName="seq_people_id",allocationSize=1)@GeneratedValue(generator="seq_gener",strategy=GenerationType.SEQUENCE)@Column(name="people_id")private Integer peopleId;@Column(name="people_name")private String peopleName;@Embedded()@AttributeOverrides({@AttributeOverride(name="parentName",column=@Column(name="parent_name")),@AttributeOverride(name="childName",column=@Column(name="chile_name"))})private Address address;}

Address.java(省略getter.setter):
package com.edu.entity;import javax.persistence.Embeddable;//可嵌入的
@Embeddable
public class Address {private String parentName;private String childName;}




这篇关于Hibernate从入门到精通(2)-component(组件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047023

相关文章

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就