Hibernate生成数据库组合键

Mark - 01 : 创建组合键的类
//必须实现Serializable这个接口
public class ScoreId implements Serializable {

    private int stuId;//学生编号

    public int getStuId() {
        return stuId;
    }

    public void setStuId(int stuId) {
        this.stuId = stuId;
    }

    public int getSubjectId() {
        return subjectId;
    }

    public void setSubjectId(int subjectId) {
        this.subjectId = subjectId;
    }

    private int subjectId;//科目编号
}


Mark - 02 : 创建要映射的类
public class ScoreResult {

    private ScoreId scoreId;//这也是一个类,将这个类作为主键
    private Double result;//结果

    public ScoreId getScoreId() {
        return scoreId;
    }

    public void setScoreId(ScoreId scoreId) {
        this.scoreId = scoreId;
    }

    public Double getResult() {
        return result;
    }

    public void setResult(Double result) {
        this.result = result;
    }
}

Mark - 03 : 编写hbm文件和配置hibernate.cfg.xml文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <!-- 普通配置这个要变成表的实体类 -->
    <class name="com.hibernate.zujianhua.ScoreResult" table="ScoreResult">

        <!-- 这个是配置组合主键,name是键名,class是类地址 -->
        <composite-id name="scoreId" class="com.hibernate.zujianhua.ScoreId">
            <!-- 这个是这个组合键类中所有的属性 -->
            <key-property name="stuId"></key-property>
            <key-property name="subjectId"></key-property>
        </composite-id>
        <!-- 实体类的属性 -->
        <property name="result"/>
    </class>
</hibernate-mapping>

#cfg:
<mapping resource="com/hibernate/zujianhua/ScoreResult.hbm.xml”/>

Mark - 04 : 生成数据库
  public static void main(String[] args){
        Configuration config = new Configuration().configure();
        StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
                .configure().build();
        Metadata metadata = new MetadataSources(serviceRegistry)
                .buildMetadata();
        SchemaExport schemaExport = new SchemaExport();
   schemaExport.create(EnumSet.of(TargetType.DATABASE), metadata);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Hibernate: 一个持久化框架 一个ORM框架 加载:根据特定的OID,把一个对象从数据库加载到内存中OID...
    JHMichael阅读 6,065评论 0 27
  • 本文中我们介绍并比较两种最流行的开源持久框架:iBATIS和Hibernate,我们还会讨论到Java Persi...
    大同若鱼阅读 9,789评论 4 27
  • 本文包括: 1、CRM 项目的整体介绍 2、Hibernate 框架概述 3、Hibernate 快速入门 4、H...
    廖少少阅读 8,745评论 9 66
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,138评论 18 399
  • 不矫情 不做作 多点正能量 希望自己说的话 自己树立的目标 都能兑现 晚安 更好的自己
    枫在摇摆阅读 1,365评论 0 0