欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IDEA2019.3配置Hibernate的詳細(xì)教程(未使用IDEA的自動(dòng)化)

 更新時(shí)間:2021年05月10日 16:05:25   作者:MaskedRuler  
這篇文章主要介紹了IDEA2019.3配置Hibernate的詳細(xì)教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

準(zhǔn)備工作

創(chuàng)建一個(gè)純java項(xiàng)目,什么都不選直接建

在這里插入圖片描述

在這里插入圖片描述

創(chuàng)建數(shù)據(jù)庫、表以及少量記錄

CREATE DATABASE test;
USE test;
CREATE TABLE t_user(
ID INT AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(20),
AGE int);
insert into testHibernate(NAME,AGE) VALUES
('張三',20),
('李四',21),
('王五',22)

使用IDEA自帶的數(shù)據(jù)庫圖形查看如下

在這里插入圖片描述

在IDEA中連接數(shù)據(jù)庫的步驟如下

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

配置

配置完的完整文件結(jié)構(gòu)如下圖

在這里插入圖片描述

引用相關(guān)包

在菜單選擇File-Project Structure

在這里插入圖片描述

選擇ProjectSettings下的Libaries,點(diǎn)擊“+”號(hào),選擇Java

在這里插入圖片描述

導(dǎo)入Hibernate相關(guān)的包。

找到放hibernate包的地方,把lib下required中的所有包選中導(dǎo)入

在這里插入圖片描述

在導(dǎo)完Hibernate包后的列表里直接點(diǎn)“+”添加其他包

在這里插入圖片描述

導(dǎo)入有關(guān)mysql的包。
我用了之前tomcat里的,主要是得匹配你的MySQL版本

在這里插入圖片描述

最后結(jié)果如下圖,點(diǎn)擊Apply應(yīng)用

在這里插入圖片描述

可以在下方的ExternalLibararies里查看導(dǎo)入了哪些包

在這里插入圖片描述

實(shí)體類(User.java)

創(chuàng)建一個(gè)對(duì)應(yīng)數(shù)據(jù)庫表的實(shí)體類,代碼如下

package entity;

public class User {
    private int id;
    private String name;
    private int age;

    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;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

關(guān)于如何自動(dòng)化生成getter與setter
快捷鍵“Alt+Ins”,鼠標(biāo)單擊右鍵也會(huì)有個(gè)Generate選項(xiàng)

在這里插入圖片描述

選擇要生成的屬性,然后點(diǎn)OK

在這里插入圖片描述

配置User實(shí)體類(user.hbm.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="entity.User" table="t_user"><!-- name選擇剛才的實(shí)體類,table寫上實(shí)體類對(duì)應(yīng)表格的名字 -->
        <id name="id" column="id"><!-- id是實(shí)體類屬性的名字,column是表格中與實(shí)體類對(duì)應(yīng)的列名(如果id和column一樣可以省略column) -->
            <generator class="native"/>
        </id>
        <property name="name" column="name"/>
        <property name="age" column="age"/>
    </class>
</hibernate-mapping>

Hibernate配置文件(hibernate.cfg.xml)

<!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="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 方言模式,不同的數(shù)據(jù)庫用不同的方言,里面的值要寫全,下面會(huì)給出一個(gè)表 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!-- mysql驅(qū)動(dòng) -->
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai</property><!-- 數(shù)據(jù)庫連接,填上面IDEA連數(shù)據(jù)庫的那個(gè)界面里的URL -->
		<property name="hibernate.connection.username">root</property><!-- MySQL用戶名 -->
		<property name="hibernate.connection.password">123456</property><!-- MySLQ密碼 -->
		<property name="show_sql">true</property>
		<mapping resource="entity/user.hbm.xml"/><!-- 選擇User的配置文件 -->
	</session-factory>
</hibernate-configuration>

方言選擇

這里只給了三個(gè)有關(guān)MySQL的,詳細(xì)的可以參考這篇文章hibernate 配置數(shù)據(jù)庫方言

關(guān)系數(shù)據(jù)庫管理系統(tǒng) 方言
MySQL org.hibernate.dialect.MySQLDialect
MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect
MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect

InnoDB:
MySQL默認(rèn)的事務(wù)型引擎,也是最重要和使用最廣泛的存儲(chǔ)引擎。它被設(shè)計(jì)成為大量的短期事務(wù),短期事務(wù)大部分情況下是正常提交的,很少被回滾。InnoDB的性能與自動(dòng)崩潰恢復(fù)的特性,使得它在非事務(wù)存儲(chǔ)需求中也很流行。除非有非常特別的原因需要使用其他的存儲(chǔ)引擎,否則應(yīng)該優(yōu)先考慮InnoDB引擎。

MyISAM:
在MySQL 5.1 及之前的版本,MyISAM是默認(rèn)引擎。MyISAM提供的大量的特性,包括全文索引、壓縮、空間函數(shù)(GIS)等,但MyISAM并不支持事務(wù)以及行級(jí)鎖,而且一個(gè)毫無疑問的缺陷是崩潰后無法安全恢復(fù)。正是由于MyISAM引擎的緣故,即使MySQL支持事務(wù)已經(jīng)很長(zhǎng)時(shí)間了,在很多人的概念中MySQL還是非事務(wù)型數(shù)據(jù)庫。盡管這樣,它并不是一無是處的。對(duì)于只讀的數(shù)據(jù),或者表比較小,可以忍受修復(fù)操作,則依然可以使用MyISAM(但請(qǐng)不要默認(rèn)使用MyISAM,而是應(yīng)該默認(rèn)使用InnoDB)

測(cè)試是否配置成功

創(chuàng)建一個(gè)用于測(cè)試的文件manegeUser.java

package dao;

import entity.User;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;

public class manageUser {
    public static void main(String[] args){
        Configuration cfg = null;
        SessionFactory sf = null;
        Session session = null;
        Transaction ts = null;
        User u = new User();
        u.setName("趙六");
        u.setAge(66);
        try {
            cfg = new Configuration().configure();
            sf = cfg.buildSessionFactory();
            session = sf.openSession();
            ts = session.beginTransaction();
            session.save(u);
            ts.commit();
        }catch (HibernateException e){
            e.printStackTrace();
            if(ts != null){
                ts.rollback();
            }
        }finally {
            session.close();
            sf.close();
        }
    }
}

按“Ctrl+Shift+F10”執(zhí)行該函數(shù)可看到如下輸出

在這里插入圖片描述

并且也成功插入了一條記錄

在這里插入圖片描述

配置成功

到此這篇關(guān)于IDEA2019.3配置Hibernate的詳細(xì)教程(未使用IDEA的自動(dòng)化)的文章就介紹到這了,更多相關(guān)IDEA2019.3配置Hibernate內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • POI XSSFSheet shiftRows bug問題解決

    POI XSSFSheet shiftRows bug問題解決

    這篇文章主要介紹了POI XSSFSheet shiftRows bug問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java設(shè)計(jì)模式之享元模式(Flyweight Pattern)詳解

    Java設(shè)計(jì)模式之享元模式(Flyweight Pattern)詳解

    享元模式(Flyweight Pattern)是一種結(jié)構(gòu)型設(shè)計(jì)模式,旨在減少對(duì)象的數(shù)量,以節(jié)省內(nèi)存空間和提高性能,本文將詳細(xì)的給大家介紹一下Java享元模式,需要的朋友可以參考下
    2023-07-07
  • SpringBoot啟動(dòng)報(bào)錯(cuò)Whitelabel Error Page: This application has no explicit mapping for的解決方法

    SpringBoot啟動(dòng)報(bào)錯(cuò)Whitelabel Error Page: This&nbs

    當(dāng)我們使用Spring Boot框架開發(fā)Web應(yīng)用時(shí),有時(shí)會(huì)遇到啟動(dòng)報(bào)錯(cuò)信息為"Whitelabel Error Page: This application has no explicit mapping for",種報(bào)錯(cuò)信息意味著我們的應(yīng)用缺少某個(gè)URL映射的配置,導(dǎo)致請(qǐng)求無法處理,在本篇文章中,我們將詳細(xì)討論如何解決這個(gè)問題
    2024-03-03
  • java web實(shí)現(xiàn)郵箱激活與忘記密碼

    java web實(shí)現(xiàn)郵箱激活與忘記密碼

    這篇文章主要為大家詳細(xì)介紹了java web實(shí)現(xiàn)郵箱激活與忘記密碼、重置密碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 解讀jdk動(dòng)態(tài)代理為什么必須實(shí)現(xiàn)接口

    解讀jdk動(dòng)態(tài)代理為什么必須實(shí)現(xiàn)接口

    這篇文章主要介紹了解讀jdk動(dòng)態(tài)代理為什么必須實(shí)現(xiàn)接口問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 淺談一段java代碼是如何執(zhí)行的

    淺談一段java代碼是如何執(zhí)行的

    這篇文章主要介紹了淺談一段java代碼是如何執(zhí)行的,小編覺得不錯(cuò),下面就一起來了解一下
    2021-04-04
  • Java如何從List中刪除元素的正確用法舉例

    Java如何從List中刪除元素的正確用法舉例

    這篇文章主要給大家介紹了關(guān)于Java如何從List中刪除元素的正確用法, 列表List是Java中的一種數(shù)據(jù)結(jié)構(gòu),存放按照添加順序的元素,是個(gè)有序的集合,需要的朋友可以參考下
    2023-07-07
  • 使用jenkins+maven+git發(fā)布jar包過程詳解

    使用jenkins+maven+git發(fā)布jar包過程詳解

    這篇文章主要介紹了使用jenkins+maven+git發(fā)布jar包過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • java判斷用戶輸入的是否至少含有N位小數(shù)的實(shí)例

    java判斷用戶輸入的是否至少含有N位小數(shù)的實(shí)例

    下面小編就為大家分享一篇java判斷用戶輸入的是否至少含有N位小數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • java 直接調(diào)用python腳本,并傳遞參數(shù)代碼實(shí)例

    java 直接調(diào)用python腳本,并傳遞參數(shù)代碼實(shí)例

    這篇文章主要介紹了java調(diào)用python腳本傳遞參數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評(píng)論