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

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

步驟:

1, 首先必須保證有POJO類,並且存在annotation註解

package com.bai.fan;
import javax.persistence.Entity;
import javax.persistence.Id;


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

2,hibernate.cgf.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">create</property> <property name=""></property> <mapping class="com.bai.fan.Cless"/> </session-factory> </hibernate-configuration>

這裡寫圖片描述

第一種值 : create
- 當一個Session被NEW出來時,刪原表,建新表。
第二種值: create-drop
- 當一個Session被NEW出來 時,刪原表建新表。Session結束,刪此表。
第三種值:update
- 當Session被NEW並接收到引數後,與原資料表做equals比較,一致報異常,不一致則新增並更新。
第四種值 :validate
- 當Session被NEW並接收到引數後,與原資料表做equals比較,一致則通過,不一致則報異常。

3,根據資料庫引擎設定對應方言檔案。
檢視資料庫引擎方法:
——以mysql為例> show engines;
檢視當前預設引擎方法:
——以mysql為例> show variables like ‘%storage_engine%’;

知道自己的資料庫是什麼引擎就好辦了,指定對應資料庫方言檔案。

——以mysql5InnoDB為例>
這裡寫圖片描述

4,測試

package com.bai.fan;

import org.apache.logging.log4j.Logger;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.bai.fan.Cless;
import org.apache.logging.log4j.LogManager;

public class TestClass {
    public static void main(String[] args) {

        @SuppressWarnings("unused")
        Logger logger = LogManager.getLogger(TestClass.class.getName());

        Cless cless = new Cless();
        cless.setId(1);

        cless.setName("王小萌");

        Configuration cg = new Configuration().configure();

        SessionFactory sf = cg.configure().buildSessionFactory();

        Session ss = sf.openSession();
        ss.beginTransaction();
        ss.save(cless);
        ss.getTransaction().commit();

        ss.close();
        sf.close();

    }
}

5,後臺輸出

這裡寫程式碼片

這裡寫圖片描述

這裡寫圖片描述

6, 另附JAR包

這裡寫圖片描述

資料庫對應方言 (轉載)

DB2——— org.hibernate.dialect.DB2Dialect
DB2 AS/400——— org.hibernate.dialect.DB2400Dialect
DB2 OS390——— org.hibernate.dialect.DB2390Dialect
PostgreSQL——— org.hibernate.dialect.PostgreSQLDialect
MySQL5——— org.hibernate.dialect.MySQL5Dialect
MySQL5 with InnoDB——— org.hibernate.dialect.MySQL5InnoDBDialect
MySQL with MyISAM——— org.hibernate.dialect.MySQLMyISAMDialect
Oracle(any version)——— org.hibernate.dialect.OracleDialect
Oracle 9i——— org.hibernate.dialect.Oracle9iDialect
Oracle 10g——— org.hibernate.dialect.Oracle10gDialect
Oracle 11g——— org.hibernate.dialect.Oracle10gDialect
Sybase——— org.hibernate.dialect.SybaseASE15Dialect
Sybase Anywhere——— org.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Server 2000——— org.hibernate.dialect.SQLServerDialect
Microsoft SQL Server 2005——— org.hibernate.dialect.SQLServer2005Dialect
Microsoft SQL Server 2008——— org.hibernate.dialect.SQLServer2008Dialect
SAP DB——— org.hibernate.dialect.SAPDBDialect
Informix——— org.hibernate.dialect.InformixDialect
HypersonicSQL——— org.hibernate.dialect.HSQLDialect
H2 Database——— org.hibernate.dialect.H2Dialect
Ingres——— org.hibernate.dialect.IngresDialect
Progress——— org.hibernate.dialect.ProgressDialect
Mckoi SQL——— org.hibernate.dialect.MckoiDialect
Interbase——— org.hibernate.dialect.InterbaseDialect
Pointbase——— org.hibernate.dialect.PointbaseDialect
FrontBase——— org.hibernate.dialect.FrontbaseDialect
Firebird——— org.hibernate.dialect.FirebirdDialect

使用MySQL 自家資料庫操作軟體Workbench,可以方便檢視MySQL支援的引擎型別。
這裡寫圖片描述

相關推薦

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

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

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

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

關於使用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

Hibernate自動生成資料庫

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

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

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

hibernate 自動生成資料庫

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

自動生成資料庫設計(一)之獲取JDBC獲取元資料

最近專案快了驗收,那麼接下來就是寫一些比較煩人的文件,在寫資料庫設計文件時,到了詳細設計這一塊有點尷尬了,每張表,沒個欄位都要寫上去,由於前期沒有整理,所以這個工作量還是很大,我查看了我們的資料庫發現有353張表,這樣寫,得花多久的時間啊。。。於是想通過程

利用mybatis-generator自動生成程式碼-對應的類和配置檔案

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configu

laravel 自動生成資料字典

安裝 安裝包檔案 $ composer require jormin/laravel-ddoc   配置 註冊 ServiceProvider: Jormin\DDoc\DDocServiceProvider::class, 建立配置檔案: php art

A.CTable 自動建立資料

1.新增依賴 <!-- A.CTable 自動建立資料表 --> <dependency> <groupId>com.gitee.sunchenbin.mybatis.actable</groupId> <artifactId>my

Oracle資料庫自動生成資料字典

1.登陸Oracle官網下載SQL Developer(若安裝過jdk則可選擇不帶jdk的版本) 2.不用安裝,直接解壓使用即可 3.新建連線之後,在左側欄中選中連線名右鍵選擇 “生成資料庫文件” 即可 4、選擇輸出目錄,點選確定即可 注意:輸出為html

mybatis配置generator自動生成資料庫對應的實體

1.generator配置檔案: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Co

myeclipse連線mysql生成資料時中文字元亂碼或問號(解決方法)

出現這個問題有以下三步解決思路: 1. 檢查myeclipse的編碼格式 windows---->Preferences---->general---->Workspace,右側視窗Text file encoding,選擇Other,改變為UTF-8。 此時重新整理專案,看能否正常寫

資料查詢資料生成資料

NpgsqlDataAdapter dataDa = new NpgsqlDataAdapter(sql, conn); DataSet dataDs = new DataSet(); dataDa.Fill(dataDs,table); DataView mDataview = new D

BeeFrameWork框架下的ActiveAndroid自動生成資料庫Java檔案

根據所給的欄位和型別的鍵值對, 或者從檔案中讀取欄位型別的鍵值對, 自動更新或生成具有資料庫欄位,構建器類Builder,fromJson和toJson函式的資料庫表文件 生成檔案如下: package test; import org.json.JSONException

Python Flask,資料庫,SQLAlchemy,資料庫遷移 (根據模型類自動生成資料庫),Flask-Migrate

在開發過程中,需要修改資料庫模型類,而且還要在修改之後更新資料庫。最直接的方式就是刪除舊錶,但這樣會丟失資料。 更好的解決辦法是使用資料庫遷移框架,它可以追蹤資料庫模型的變化,然後把變動應用到資料庫中。 在Flask中可以使用Flask-Migrate擴充套件,來實現資料庫遷移。並且整合到F

mybatis自動生成對應的實體類、介面和對映檔案

使用maven構建的專案,其中整合了mybatis,每次使用時都需要建立model實體類,dao介面和mapper對映檔案,為了方便開發,maven中有一種外掛可以直接生成資料庫表對應的實體類,介面和對映檔案 1.首先要在pom.xml檔案中加入外掛依賴,注意直接放在<

PowerDesigner物理模型生成資料無comment問題

在PowerDesigner物理模型生成資料表時,沒有comment;也看了網上諸多教程,不清楚別人最後怎麼生成comment的,最後來說說我的解決辦法。在物理模型Table右鍵properties-->Columns-->選下圖紅框按鈕/Ctrl+U快捷鍵 到C

hibernate tools自動生成entity程式碼

1、eclipse下載安裝jboss tools外掛 2、新建hibernate.cfg.xml 3、選擇檔案生成路徑一般在 Project的配置檔案存放地點resource。因為用maven建立所以放在src\main\resource下面 4、hibe