Hibernate单表操作(四)——组件属性
时间:2022-07-25
本文章向大家介绍Hibernate单表操作(四)——组件属性,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
转载请注明:http://blog.csdn.net/uniquewonderq
1.什么是组件属性呢?
它是指:实体类中的某个属性属于用户自定义的类的对象。
理解起来还是不容易:所以写点代码来说明问题:
首先添加一个地址类:
package Entity;
//地址类
public class Address {
private String postcode;//邮编
private String phone;//电话
private String address;//地址
public Address(){
}
public Address(String postcode, String phone, String address) {
this.postcode = postcode;
this.phone = phone;
this.address = address;
}
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
其次再在 student.hbm.xml的映射文件中加入:
<component name="address" class="Address">
<property name="postcode" column="POSTCODE"/>
<property name="phone" column="PHONE"/>
<property name="address" column="ADDRESS"/>
</component>
改变先前students类的构造方法:
public Students(int sid, String sname, String gender, Date birthday,
Address address) {
this.sid = sid;
this.sname = sname;
this.gender = gender;
this.birthday = birthday;
this.address=address;
}
写测试方法:
public void testSaveStudents(){//保存学生用例对象
//生成地址对象
Address address=new Address("710024","15319728***","西安市");
//生成学生对象
Students s1=new Students(1,"张奇","男",new Date(),address);
session.save(s1);//保存对象进入数据库,无须写sql语句
}
因为表单结构发生变化,所以还要将hibernate.cfg.xml中的
<property name="hbm2ddl.auto">update</property> 给为
<property name="hbm2ddl.auto">create</property>
测试结果就是在新建了一个表,相比原来的表结构,新增了3列。(那三列是Address类的对象,该类有三个属性,自然增了3列)。
如下所示:
- CA,给了数据库,给了机器,为啥也扩不了容?
- 如何使用Anaconda设置机器学习和深度学习的Python环境
- MQ,互联网架构解耦神器
- 预测随机机器学习算法实验的重复次数
- 服务化了,没想到耦合更加严重?
- 如何在Python中扩展LSTM网络的数据
- 使用Keras的Python深度学习模型的学习率方案
- 全球电脑手机无一幸免,英特尔CPU“漏洞事件”到底多严重?
- 评估Keras深度学习模型的性能
- Python机器学习的练习二:多元线性回归
- 熔断器 Hystrix 源码解析 —— 命令合并执行
- Python机器学习的练习一:简单线性回归
- Dubbo源码解析 —— zookeeper连接
- 浣熊检测器实例, 如何用TensorFlow的Object Detector API来训练你的物体检测器
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网
- Android编程实现自定义Dialog的大小自动控制方法示例
- Linux中如何查看文件的创建时间详解
- Android 图片添加水印的实现方法
- Linux系统清除缓存的方法总结
- 详解Android使用@hide的API的方法
- Android 实现按两次返回键退出程序(两种方法)
- 使用 bash 倒计时日期的方法
- Android 实现页面跳转
- Android EditText密码的隐藏和显示功能
- linux系统下的时间配置综述
- Android TextView 去掉自适应默认的fontpadding的实现方法
- Linux文件/目录的权限及归属管理使用
- Android自定义环形LoadingView效果
- Android隐藏标题栏及解决启动闪过标题的实例详解