ssh整合思想 Spring與Hibernate的整合ssh整合相關JAR包下載 .MySQLDialect添加了第57區的方言解決沒有異常,hibernate.dialect核心配置文件就是無法自動update創建表

来源:https://www.cnblogs.com/qingyundian/archive/2017/12/31/8158954.html
-Advertisement-
Play Games

除之前的Spring相關包,還有structs2包外,還需要Hibernate的相關包 首先,Spring整合其他持久化層框架的JAR包 spring-orm-4.2.4.RELEASE.jar (整合Hibernate的) 這個JAR包在Spring框架中包含 Hibernate 需要的JAR包 ...


除之前的Spring相關包,還有structs2包外,還需要Hibernate的相關包

首先,Spring整合其他持久化層框架的JAR包 spring-orm-4.2.4.RELEASE.jar  (整合Hibernate的)

這個JAR包在Spring框架中包含

Hibernate 需要的JAR包

slf4j-api-1.7.7.jar

slf4j-log4j12-1.7.1.jar

jboss-logging-3.3.0.Final.jar

jandex-2.0.3.Final.jar

hibernate-entitymanager-4.2.3.final.jar

hibernate-jpa-2.1-api-1.0.0.Final.jar

hibernate-core-5.2.12.Final.jar

hibernate-commons-annotations-5.0.1.Final.jar

geronimo-jta_1.0.1b_spec-1.1.1.jar

antlr-2.7.7.jar


 

上面Hibernate11個包

以及前邊的JAR包共計43個

下載地址如下:

鏈接: https://pan.baidu.com/s/1mizikiO 密碼: cigf


 

java.lang.ClassNotFoundException: org.dom4j.io.STAXEventReader 異常

缺少了dom4j-1.6.1.jar 包

在Hibernate官方包中

包含dom4j-1.6.1.jar 的官方Hibernate整包下載地址

鏈接: https://pan.baidu.com/s/1c2Jbmnu 密碼: 3sef


 

需要JAR包 classmate-1.3.0.jar

在Hibernate官方包中


 

註意:Hibernate的核心配置文件hibernate.cfg.xml 要在src文件夾下,不能在其下的某個包中,否則會出現

最後,Hibernate測試成功效果

不用資料庫創建表,通過實體類映射文件User.hbm.xml,它的位置隨意。把User類映射到資料庫中

映射文件代碼:

<?xml version="1.0" encoding='UTF-8'?>     
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 實體類映射文件 -->
<hibernate-mapping>

    <class name="com.swift.entity.User" table="hibernate_user">
        <!-- 主鍵 -->
        <id name="uid" column="uid">
            <generator class="native"/>
        </id>
        <!-- 其他屬性 -->
        <property name="username" column="username"/>
        <property name="address" column="address"/>
    </class>
    
</hibernate-mapping>

實體類代碼如下:

package com.swift.entity;

public class User {
    
    private Integer uid;
    private String username;
    private String address;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public Integer getUid() {
        return uid;
    }
    public void setUid(Integer uid) {
        this.uid = uid;
    }
    
}

這裡要註意uid所使用的整型類型不是int,而是Integer

Hibernate核心配置文件,要在src目錄下,一定註意位置,在其中指定上邊的映射文件,同時連接資料庫,並自動生成表。

核心配置文件hibernate.cfg.xml 代碼如下:

<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC   
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"   
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/lastday</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        
        
        <property name="hibernate.show_sql">true</property>

        <!-- create: 先刪表,再建表。 create-drop: 啟動時建表,退出前刪表。 update: 如果表結構不一致,就創建或更新。 
            validate: 啟動時驗證表結構,如果不致就拋異常。 -->
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

        <!--指定映射文件,可映射多個映射文件 -->
        <mapping resource="com/swift/entity/User.hbm.xml"></mapping>
    </session-factory>
</hibernate-configuration>  

載入核心配置文件的測試類HibernateUtil 代碼如下:

package com.swift.entity;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
    static SessionFactory sessionFactory=null;
    static Configuration cfg=null;
    
    static{
        //載入核心配置文件
        cfg = new Configuration();
        cfg.configure();
        sessionFactory = cfg.buildSessionFactory();
    }
    
    public static SessionFactory getSessionFactory(){
        return sessionFactory;
    }
    public static Session getSession(){
        return sessionFactory.getCurrentSession();
    }
    public static void main(String[] args) {
        
    }
}

資料庫中查看效果

是空的,資料庫中什麼都沒有,沒有自動建成的表。

仔細檢查都沒有錯了,排除了映射混亂問題,就是不出表,SQL語句都成功打出了,也沒有任何異常。

最後參考了這個兄弟的解釋

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

.MySQLDialect添加了第57區的方言,就搞定了,這個誰設計的絕對的敗筆,坑倒一片的節奏。

 


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

-Advertisement-
Play Games
更多相關文章
  • 一、原理 Spring MVC基於模型-視圖-控制器(Model-View-Controller,MVC)模式實現,它能夠幫你構建像Spring框架那樣靈活和松耦合的Web應用程式,將請求處理的邏輯和視圖中的渲染實現解耦。 1、DispatcherServlet是Spring MVC的核心 。Spr ...
  • 本人一直在走.NET技術路線,考慮到後期公司搞JAVA項目,也算是進行技術災備,開始對JAVA技術進行關註。萬事開頭難,也是上來一頭包。沒辦法,頂著上吧。上面開始分給我任務了。就是對後期項目報表進行方案選型。哥們兒花了兩周的時間總算是提供了幾個方案,以供相關人員選擇。特將此次過程整理如下: 一、萬事 ...
  • 一、Spring MVC 驗證 JSR 303 是ajvaEE6 中的一項子規範 ,叫 Bean Validation 用於對javaBean中的欄位進行校驗。 官方的參考實現是: Hibernate Validator ,此實現和 Hibernate ORM 沒有任何關係 //http://hib ...
  • ##importlogginglogging.debug('debug message')logging.info('info message')logging.warning('warning message') # WARNING:root:warning messagelogging.erro ...
  • 註意迭代器和可迭代對象不同#迭代器:1、有iter方法,2、有next方法li=[1,2,3,4,5]d=iter(li) # 等於li.__iter__()print(d) # <list_iteratorobjectat0x00000174316CC3C8>可以通過next方法取出元素。for循 ...
  • 要讀取鍵盤輸入的數據,需要使用輸入流,可以是位元組輸入流,也可以是位元組輸入流轉換後的字元輸入流。 關於鍵盤輸入,有幾點註意的是:(1).鍵盤輸入流為System.in,其返回的是InputStream類型,即位元組流。(2).位元組流讀取鍵盤的輸入時,需要考慮回車符(\r:13)、換行符(\n:10)。( ...
  • 再有兩天就進入2018了,想想還是要準備一下明年的工作方向。回想當初開始學習函數式編程時的主要目的是想設計一套標準API給那些習慣了OOP方式開發商業應用軟體的程式員們,使他們能用一種接近傳統資料庫軟體編程的方式來實現多線程,並行運算,分散式的數據處理應用程式,前提是這種編程方式不需要對函數式編程語 ...
  • 一、Spring簡介 Spring MVC是當前最優秀的 MVC 框架,自從Spring 2.5 版本發佈後,由於支持註解配置,易用性有了大幅度的提高。Spring 3.0 更加完善,實現了對 Struts 2 的超越。現在越來越多的開發團隊選擇了Spring MVC。 1)Spring3 MVC使 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...