Hibernate从入门到精通(四)基本映射
映射的概念
在上次的博文Hibernate从入门到精通(三)Hibernate配置文件我们已经讲解了一下Hibernate中的两种配置文件,其中提到了两种配置文件的主要区别就是XML可以配置映射。这里提到的映射即对象关系映射(Object Relational Mapping)。ORM的实现目的就是将对象数据保存到数据库中,同时可以将数据库数据读入对象中,这样开发人员就可以将对数据库数据的操作转化为对这些对象的操作。
基本映射
了解了映射的意义和概念之后,我们来讲解一下映射的分类。从映射的概念来看,单个的数据库表可以映射成为一个对象,抛开Hibernate不谈,这种思路在很多项目开发中时常见的,即根据表结构创建相应实体类,这种简单的映射关系在Hibernate映射中被称为基本映射。
基本映射实例
如下图所示的表结构:
经过转换之后,可以创建相应的对象,代码如下:
public class User{
private String id;
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;
}
}
对于Hibernate来讲,仅仅是有上面的还是不够的,还需要一个XML格式的映射文件User.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">
<hibernate-mapping package="com.zs.hibernate">
<class name="User1" table="t_user1">
<id name="id" column="user_id" length="32" access="field">
<generator class="uuid"/>
</id>
<property name="name" length="30" unique="true" not-null="true"/>
</class>
</hibernate-mapping>
注解配置基本映射实例
除了上述XML方式配置映射外,还可以通过给类文件添加注解的方式配置映射,具体代码如下:
@Entity
@Table(name="t_user")
public class User{
@Id
private String id;
@GeneratedValue
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;
}
}
到此,映射的基本概念和简单实用,我们就算是讲解完毕了,对于映射配置中的一些细节问题,例如:@Entity,@Table的使用说明等等,建议大家找一本注解和XML配置相关的说明文档进行学习,这里就不再给大家进行讲解了。下次我们讲解一些稍微复杂一点的映射。
Hibernate从入门到精通(四)基本映射的更多相关文章
- Hibernate从入门到精通(五)一对一单向关联映射
上次的博文中Hibernate从入门到精通(四)基本映射我们已经讲解了一下基本映射和相关概念,接下来我们会讲稍微复杂点的映射——关系映射. 关系映射分类 关系映射即在基本映射的基础上处理多个相关对象和 ...
- [置顶] Hibernate从入门到精通(五)一对一单向关联映射
上次的博文中Hibernate从入门到精通(四)基本映射我们已经讲解了一下基本映射和相关概念,接下来我们会讲稍微复杂点的映射——关系映射. 关系映射分类 关系映射即在基本映射的基础上处理多个相关对象和 ...
- Hibernate从入门到精通(十一)多对多双向关联映射
上次我们在中Hibernate从入门到精通(十)多对多单向关联映射讲解了一下多对多单向关联映射,这次我们讲解一下七种映射中的最后一种多对多双向关联映射. 多对多双向关联映射 按照我们之前的惯例,先看一 ...
- Hibernate从入门到精通(十)多对多单向关联映射
上一篇文章Hibernate从入门到精通(九)一对多双向关联映射中我们讲解了一下关于一对多关联映射的相关内容,这次我们继续多对多单向关联映射. 多对多单向关联映射 在讲解多对多单向关联映射之前,首先看 ...
- Hibernate从入门到精通(九)一对多双向关联映射
上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关内容,这次我们讲解一下一对多双向映射的相关内容. 一对多双向关联映射 一对多双向关联映射,即在一的 ...
- Hibernate从入门到精通(八)一对多单向关联映射
上次的博文Hibernate从入门到精通(七)多对一单向关联映射我们主要讲解了一下多对一单向关联映射,这次我们继续讲解一下一对多单向映射. 一对多单向关联映射 在讲解一对多单向关联之前,按照我们的惯例 ...
- Hibernate从入门到精通(七)多对一单向关联映射
上次的博文Hibernate从入门到精通(六)一对一双向关联映射中我们介绍了一下一对一双向关联映射,本次博文我们讲解一下多对一关联映射 多对一单向关联映射 多对一关联映射与一对一关联映射类似,只是在多 ...
- Hibernate从入门到精通(六)一对一双向关联映射
在上次的博文Hibernate从入门到精通(五)一对一单向关联映射中我们讲解了一下一对一单向关联映射,这次我们继续讲解一下与之对应的一对一双向关联映射. 一对一双向关联 与一对一单向关联映射所不同的的 ...
- [置顶] Hibernate从入门到精通(七)多对一单向关联映射
上次的博文Hibernate从入门到精通(六)一对一双向关联映射中我们介绍了一下一对一双向关联映射,本次博文我们讲解一下多对一关联映射 多对一单向关联映射 多对一关联映射与一对一关联映射类似,只是在多 ...
随机推荐
- Wing IDE编译TesorFlow中Mnist convolutional 实例
# # http://www.cnblogs.com/mydebug/ # from __future__ import absolute_import from __future__ import ...
- 关于HashMap根据Value获取Key
关于我对java中集合的总结有如下三篇: 关于JDK中的集合总结(一) 关于JDK中的集合总结(二) 关于JDK中的集合总结(三) 关于数组集合之间的转换 Map中是一个key有且只有一个value. ...
- 神奇的CSS3选择器
话说园子里也混迹多年了,但是基本没写过blog,写点基础的,那就从css3选择器开始吧. Css3选择器 先说下,为什么提倡使用选择器. 使用选择器可以将样式与元素直接绑定起来,在样式表中什么样式与什 ...
- .net System.Net.Mail 之用SmtpClient发送邮件 Demo
private static bool sendMail() { try { //接收人邮箱 string SendTo = "XXXXX@163.com"; //抄送人邮箱 st ...
- Sqlserver 关于游标
对于sql来说查询的思维方式的面向集合对于游标来说:思维方式是面向行的 性能上:游标会吃更多内存,减少可见的并发,锁定资源等 当穷尽了while循环,临时表,表变量,自建函数,或其他方式仍然无法实现某 ...
- js前端防止默认表单提交
代码如下: document.forms[0].onsubmit=function(){return false;};
- sql防注入式
SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因.比如: 如果你的查询语句是 ...
- 【转载】颜色空间-RGB、HSI、HSV、YUV、YCbCr的简介
转载自缘佳荟的博客. 颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间.而颜色可以由不同的角度,用三个一组的不同属性加以描述,就产生了不同的颜色空间.但 ...
- 实例介绍Cocos2d-x中Box2D物理引擎:HelloBox2D
我们通过一个实例介绍一下,在Cocos2d-x 3.x中使用Box2D物理引擎的开发过程,熟悉这些API的使用.这个实例运行后的场景如图所示,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触 ...
- iOS UIView 快速修改 frame
我们修改frame中的某个值,需要进行繁琐的书写,例如: (1). 直接设置位置大小 view.frame = CGRectMake(0, 0, 320, 150); (2). 只修改某个值 view ...