在 IDEA 中支持 Hibernate 生成實體類操作指南

来源:http://www.cnblogs.com/java-class/archive/2016/12/21/6208356.html
-Advertisement-
Play Games

談起 Hibernate 應該得知道 Gavin King 大叔,他構建了 Hibernate ,並將其捐獻給了開源社區。 Hibernate 對象關係映射解決方案,為面向對象的領域模型到傳統的關係型資料庫的映射,提供了一個使用方便的框架。 Hibernate 的設計目標是將軟體開發人員從大量相同的 ...


    談起 Hibernate 應該得知道 Gavin King 大叔,他構建了 Hibernate ,並將其捐獻給了開源社區。

    

   Hibernate 對象關係映射解決方案,為面向對象的領域模型到傳統的關係型資料庫的映射,提供了一個使用方便的框架。

   Hibernate 的設計目標是將軟體開發人員從大量相同的數據持久層相關編程工作中解放出來。

   Hibernate 也是目前Java開發中最為火熱的資料庫持久層框架,現已歸JBOSS所有。

   好了言歸正傳,IDEA 對開發者真的是貼心的小棉襖,本篇博客記錄下 IDEA 中連接資料庫反轉生成 Hibernate 實體和配置文件。

1. 打開 DataBase 視窗,添加數據源

   OK,數據源已添加好。

2. 添加 hibernat 持久層支持,生成實體 Bean /配置文件

 

   然後選擇數據源,選擇包,添加生成 Bean 的尾碼,選擇表,選擇生成 xml 配置文件還是註解。

   OK,結束,是不是比 Eclipse/MyEclipse 上面安裝各種插件效率要高的多。

   如果你選擇生成帶 JPA 註解類,映射文件是可以省略的,相反如果你生成映射文件,JPA 註解也可以省略。

   看你喜歡哪種方式,有機會說說 JPA 註解類和映射文件在項目實戰中的優劣。

   生成的JPA 註解類:

@Entity
@Table(name = "user", schema = "db_test", catalog = "")
public class UserPO {
    private String uuid;
    private String name;
    private String passwd;
    private String sex;
    private Timestamp birthday;
    private String phone;
    private String photo;
    private String email;
    private String yxbz;
    private String sorts;

    @Id
    @Column(name = "UUID")
    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    @Basic
    @Column(name = "NAME")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Basic
    @Column(name = "PASSWD")
    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    @Basic
    @Column(name = "SEX")
    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Basic
    @Column(name = "BIRTHDAY")
    public Timestamp getBirthday() {
        return birthday;
    }

    public void setBirthday(Timestamp birthday) {
        this.birthday = birthday;
    }

    @Basic
    @Column(name = "PHONE")
    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    @Basic
    @Column(name = "PHOTO")
    public String getPhoto() {
        return photo;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }

    @Basic
    @Column(name = "EMAIL")
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Basic
    @Column(name = "YXBZ")
    public String getYxbz() {
        return yxbz;
    }

    public void setYxbz(String yxbz) {
        this.yxbz = yxbz;
    }

    @Basic
    @Column(name = "SORTS")
    public String getSorts() {
        return sorts;
    }

    public void setSorts(String sorts) {
        this.sorts = sorts;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        UserPO userPO = (UserPO) o;

        if (uuid != null ? !uuid.equals(userPO.uuid) : userPO.uuid != null) return false;
        if (name != null ? !name.equals(userPO.name) : userPO.name != null) return false;
        if (passwd != null ? !passwd.equals(userPO.passwd) : userPO.passwd != null) return false;
        if (sex != null ? !sex.equals(userPO.sex) : userPO.sex != null) return false;
        if (birthday != null ? !birthday.equals(userPO.birthday) : userPO.birthday != null) return false;
        if (phone != null ? !phone.equals(userPO.phone) : userPO.phone != null) return false;
        if (photo != null ? !photo.equals(userPO.photo) : userPO.photo != null) return false;
        if (email != null ? !email.equals(userPO.email) : userPO.email != null) return false;
        if (yxbz != null ? !yxbz.equals(userPO.yxbz) : userPO.yxbz != null) return false;
        if (sorts != null ? !sorts.equals(userPO.sorts) : userPO.sorts != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = uuid != null ? uuid.hashCode() : 0;
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (passwd != null ? passwd.hashCode() : 0);
        result = 31 * result + (sex != null ? sex.hashCode() : 0);
        result = 31 * result + (birthday != null ? birthday.hashCode() : 0);
        result = 31 * result + (phone != null ? phone.hashCode() : 0);
        result = 31 * result + (photo != null ? photo.hashCode() : 0);
        result = 31 * result + (email != null ? email.hashCode() : 0);
        result = 31 * result + (yxbz != null ? yxbz.hashCode() : 0);
        result = 31 * result + (sorts != null ? sorts.hashCode() : 0);
        return result;
    }
}
View Code

   生成的映射文件:

<?xml version='1.0' encoding='utf-8'?>
<!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.rombo.hiberdemo.po.OrgaUserPO" table="orga_user" schema="db_test">
        <id name="uuid" column="UUID"/>
        <property name="orgaid" column="ORGAID"/>
        <property name="userid" column="USERID"/>
        <property name="mtype" column="MTYPE"/>
    </class>
</hibernate-mapping>
View Code

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這裡給大家詳細說一下Maven的運行機制,讓大家不僅知其然,更知其所以然。 1.插件保存在哪裡? 與我們所依賴的構件一樣,插件也是基於坐標保存在我們的Maven倉庫當中的。在用到插件的時候會先從本地倉庫查找插件,如果本地倉庫沒有則從遠程倉庫查找插件並下載到本地倉庫。 與普通的依賴構件不同的是,Mav ...
  • Java是一門面向對象的語言,那麼我們寫程式的時候最經常操作的便是對象了,為此,Java提供了一些專門用來處理對象的類庫,這些類庫的集合我們稱之為集合框架。Java集合工具包位於Java.util包下,包含了很多常用的數據結構,如數組、鏈表、棧、隊列、集合、哈希表等。學習Java集合框架下大致可以分 ...
  • 首先在頁面中我們直接寫一個標簽,然後給標簽定義一個id,這裡我們用什麼標簽都可以,我們就用<span></span>演示吧, 代碼如下: 上面我們實例化了一個Clock的對象,這裡我們就在外部定義一個Clock的類, 獲取當前時間併進行時間的格式化,代碼如下: 之後我們在頁面頭部中引入該js就好了: ...
  • Containers in Depth ___ Full container taxonomy You can usually ignore any class that begins with "Abstract." Filling containers This fill( ) just dup ...
  • HTML翻譯為超文本標記語言<標簽名>內容</標簽名>靜態網頁動態網頁的區別是看是否從數據中提取數據一般網頁由幾部分組分組成<html>開始標簽 <head>頭,即為網頁上的控制信息 <title>頁面上的標題</title> </head> <body,其屬性一般有bgcolor頁面背景色,tex ...
  • (1)首先要修改JDK中JMX服務的配置文件,以獲得相應的許可權: 進入$JAVA_HOME所在的根目錄的/jre/lib/management子目錄下, a. 將jmxremote.password.template文件複製為jmxremote.password b. 調整jmxremote.acc ...
  • 有想哪裡知道有做六合彩投註網站系統建設開發的嗎,我這邊可以做六合彩投註系統,如果需要的朋友可以私聊一下。 新版六合彩投註網站系統源碼 (測試完整可商業運行) 帶新開獎結果》》》》》 網站系統可以支持代理開設,股東發展,普通會用等常用的功能。 內附說明。資料庫文件 hs001 修改資料庫連接 文件夾 ...
  • 通過前面的介紹,我們已經能夠看到管理員界面並對Solr形成了一個感性的認識。本篇將在物理上深入瞭解Solr的安裝目錄結構和Solr示例的主目錄結構。 安裝目錄結構 Solr 6.3.0安裝文件夾裡面包含很多內容。這裡挑選一些重要的目錄進行說明。目錄結構如下: bin:大量的Solr控制台管理工具存在 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...