- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
03Hibernate映射
Hibernate 映射
基本映射
主键生成策略
uuid:随机生成通用唯一标识符,实体类的ID类型必须为String
assigned:需要手动设定id,默认
native:让数据库自动选择一种策略(根据底层数据库的能力选择 identity、sequence 或者 hilo 中的一个。)Number
!DOCTYPE hibernate-mapping PUBLIC
-//Hibernate/Hibernate Mapping DTD 3.0//EN
/dtd/hibernate-mapping-3.0.dtd
hibernate-mapping
class name=net.vzhang.po.User table=t_user
id name=id column=id
generator class=native/
/id
property name=name column=name/
property name=password column=password/
/class
/hibernate-mapping
关联映射
域模型(实体)之间的关联关系
一对一(one-one) 一个人一个身份证
一对多(one-many, many-one) 用户和用户组
多对多(many-many) 老师和学生
域模型和关系模型一些区别:
域模型中有继承关系,关系模型不能直接表示继承关系
域模型中有多对多的关联关系,关系模型通过连接表来表示多对多的关联关系
比如 新闻表 和 类别表 一条新闻可能属于多个类别
薄熙来开庭,属于国内新闻 同时也属于重大要闻
New表
NewsId Title Content 8 薄熙来开庭 提出上诉
ClassId Title 1 国内新闻 2 重大要闻
Id NewsId ClassId 1 8 1 2 8 2
域模型中有双向关联关系,关系模型只有单向参照关系,而且总是many方参照one方
所推崇的粒度不一样,域模型提倡精粒度模型,而关系模型提倡粗粒度模型
关联映射
将关联关系映射到数据库,在实体模型中关联关系就是对象模型在内存中的一个或多个引用
Many-One
在many方的映射文件里使用many-to-one标签,会在该模型的关系模型里面加入一个外键,默认是与one的一方的主键关联的。
数据表:
这里讲一下创建数据库
写实体类 先叫 Grou
package org.zshwd.hibernate.vo;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Grou {
private int id;
private String name;
@Id
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
}
配置文件
mapping class=org.zshwd.hibernate.vo.Grou /
写TestGrou.java
package org.zshwd.hibernate.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.zshwd.hibernate.util.HibernateUtil;
import org.zshwd.hibernate.vo.Grou;
public class TestGroup {
public static void main(String[] args) {
Grou group = new Grou();
group.setName(测试);
SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
session.save(group);
session.getTransaction().commit();
se
文档评论(0)