1. 程式人生 > >Hibernate初學者---5.2.10版本_SchemaExpor 自動生成資料表

Hibernate初學者---5.2.10版本_SchemaExpor 自動生成資料表

Hibernate 版本: v5.2.10
Eclipse版本:v4.7.1
JDK版本: v1.8
MySQL版本:v5.7

網上Hibernate資料少得可憐,又不能半途而廢,真心想好好學一下Hibernate. 直接上原始碼。

這是一個外來鍵關聯的案例,所以有兩個POJO類。

第一個POJO類

package com.bai.fan;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToOne;

@Entity
public class
One2One_A {
int id; String name; One2One_B w2; @Id public int getId() { return id; } public String getName() { return name; } @OneToOne public One2One_B getW2() { return w2; } public void setId(int id) { this.id = id; } public
void setName(String name) { this.name = name; } public void setW2(One2One_B w2) { this.w2 = w2; } }

第二個POJO類

package com.bai.fan;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class One2One_B
{
int id; String name; @Id @GeneratedValue public int getId() { return id; } public String getName() { return name; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } }

hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>  

<!DOCTYPE hibernate-configuration PUBLIC  
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>

        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

        <property name="connection.url">jdbc:mysql://localhost/hibernate</property>

        <property name="connection.username">root</property>

        <property name="connection.password">shwythnn00</property>

        <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

        <property name="show_sql">true</property>

        <property name="hibernate.format_sql">true</property>

        <property name="hibernate.hbm2ddl.auto">update</property>

        <property name=""></property>

        <!-- <mapping class="com.bai.fan.Zhulei" /> -->
        <mapping class="com.bai.fan.One2One_A" />
        <mapping class="com.bai.fan.One2One_B" />
            // 這裡要特別注意,兩個POJO類的 Mapping 都要配置。
    </session-factory>
</hibernate-configuration>  

Junit TEST類

package com.bak.bum;

import java.util.EnumSet;

import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.hibernate.tool.schema.TargetType;
import org.junit.Test;

public class MyTest {

    @Test
    public void test() {
        ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().configure().build();   
        Metadata metadata = new MetadataSources(serviceRegistry).buildMetadata();  
        SchemaExport schemaExport = new SchemaExport();
        schemaExport.create(EnumSet.of(TargetType.DATABASE), metadata); 
    }

}

執行結果

由於是外來鍵關聯,Hibernate 做了三次操作:create兩次,alter一次
這裡寫圖片描述

MySQL確認資料表;
這裡寫圖片描述

相關推薦

Hibernate初學者---5.2.10版本_SchemaExpor 自動生成資料

Hibernate 版本: v5.2.10 Eclipse版本:v4.7.1 JDK版本: v1.8 MySQL版本:v5.7 網上Hibernate資料少得可憐,又不能半途而廢,真心想

Hibernate初學者---自動生成資料

步驟: 1, 首先必須保證有POJO類,並且存在annotation註解 package com.bai.fan; import javax.persistence.Entity; import javax.persistence.Id; @Ent

關於使用python來實現mysql自動生成資料

注:環境 windows 7 旗艦版 python 3.6.4 xlrd模組 pymysql模組 mysql 8.0.12 前幾天拿到一個專案需要在資料庫建立‘一堆’的表!於是就有了一個偷懶的想法! 經過努力終於完成了‘乞丐版’程式碼如下: # -*-

Django學習筆記(二)--通過model自動生成資料

首先要編寫好自己的model from django.db import models # Create your models here. class Article(models.Model

Spring 4.2.5 + Hibernate 5.2.10 報錯筆記

專案離線無網開發,無法帖出報錯控制檯資訊 當@Transactional的isolation屬性指定了值時Hibernate執行總是抱錯無法執行 通過跟蹤程式碼發現Hibernate 5.2.10的C

Hibernate 5.2.10 Unknow Entity exception

今天回顧了一下Hibernate,下載了最新版本的5.2.10.Final  ,結果在測試的時候一直報錯Unknow Entity 原來是session的建立方式和之前4的有了很大的差別 @Bef

6.5 2.10-2.13

cp mv 查看文檔常用命令 PATH環境變量 2.10 環境變量PATH [root@hyc-01-01 ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/binWhich會從以上環境變量PATH列出的

hibernate-release-5.2.4.Final

-- hiberna hibernate targe fin AS 配置文件 file href hibernate-release-5.2.4.Final hibernate.cfg.xml 配置文件模板 --->點擊下載 運行測試Main方法Java文件 ---

小白學ES 02-Linux中部署Elasticsearch單機服務(5.6.10版本)

目錄 1 前提: 安裝JDK 2 準備安裝包 3 建立ES專用使用者 4 啟動ES服務 5 驗證ES服務是否可用 6 關閉ES服務 7 重啟ES服務 8 常見問題的解決 此部署過程以Elasticsearch-5.6.10版本為例, 後續的學習和演示也用此版本.

Hibernate5.3.7版本)核心XML檔案

1、*.hbm.xml檔案詳解 該檔案是將物件持久化到關係型資料庫中的相關資訊,結構基本相同: <?xml version="1.0"?> <!--對映檔案的dtd資訊--> <!DOCTYPE hibernate-mapping PUBLIC "-

Kibana外掛的安裝(5.6.10版本)

1 Kibana是什麼 Kibana是一個配合Elasticsearch使用的、開源的資料分析和視覺化平臺, 可以與Elasticsearch中儲存的索引文件進行互動. 使用Kibana能執行高階的資料分析, 並通過圖表、表格、地圖等形式顯示分析結果.

Python doc v2.7.6 ------ 5.2.10.1. Generator-iterator methods

This subsection describes the methods of a generator iterator. They can be used to control the execution of a generator function. Note

zbb20170928 spring hibernate mysql 保存數據時自動生成 主鍵 設置

ring integer 主鍵 mys unique 技術分享 ner img rate @Id @GeneratedValue @Column(name = "id", unique = true, nullable = false) public In

SpringMVC學習系列-後記 結合SpringMVC和Hibernate-validator,根據後臺驗證規則自動生成前臺的js驗證程式碼

在SpringMVC學習系列(6) 之 資料驗證中我們已經學習瞭如何結合Hibernate-validator進行後臺的資料合法性驗證,但是通常來說後臺驗證只是第二道保險,為了更好的使用者體驗會現在前端進行js驗證,驗證通過之後資料才能提交到後臺,那麼我們不可避免的要在前端的頁面中寫對應的js驗證程式碼。

利用powerDesigner16.5連線oracle資料庫並自動生成結構圖過程及所遇到的坑

配置過程 1、點選file-->new model 2.選擇model types ,選擇physical data model ,mode name是你自己新建的名字,這個隨意,DBMS是你對應資料庫版本,我的是oracle version11g,選擇

ASP.NET Core 中文文件 第二章 指南(4.10)檢查自動生成的Detail方法和Delete方法

開啟 Movie 控制器並檢視 Details 方法: // GET: Movies/Details/5 public async Task<IActionResult> Details(int? id) { if (id == null) { return No

更新 AndroidStudio 2.3 版本後,生成簽名的 apk(Generate Signed APK)時出現的新問題

更新AndroidStudio 2.3版本後,生成簽名的apk(Generate Signed APK)時出現新問題,特此記錄一下:(1)檢測更為嚴格一下子冒出很多之前沒見過的問題:可能是從Eclips

hibernate 自動生成資料庫

只要在hibernate.cfg.xml新增這句話,就可以自動生成資料表 <property name="hibernate.hbm2ddl.auto">update</property> update:表示自動根據model物件來更新表結構,啟動hibernate時會自動檢查資料庫

添加註解後,框架沒有自動根據實體類生成資料,Hibernate

@Id註解:指定實體Bean的主鍵對映,需在getter方法上標註。@GeneratedValue註解:用於指定主鍵生成策略,註解支援的主鍵生成策略有: AUTO——相當於配置檔案中的native,根據底層資料庫自動選擇使用IDENTITY、SEQUENCE、TABLE型別(預設值)TABLE——使用ta

Hibernate自動生成資料庫

  雖說整體上對SSH有一定的把控使用能力,但還是見微知著,點滴積累。Hibernate本意是冬眠,很好的封裝了JDBC和資料庫互動,實現了物件的持久化操作。所以也可以理解物件的持久化其實就是“冬眠”