国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

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

發(fā)布時(shí)間:2021-07-06 11:13 來(lái)源:腳本之家 閱讀:0 作者:MaskedRuler 欄目: 開(kāi)發(fā)技術(shù)

準備工作

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


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

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自帶的數據庫圖形查看如下


在IDEA中連接數據庫的步驟如下



配置

配置完的完整文件結構如下圖

引用相關(guān)包

在菜單選擇File-Project Structure


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


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

找到放hibernate包的地方,把lib下required中的所有包選中導入


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

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


最后結果如下圖,點(diǎn)擊Apply應用


可以在下方的ExternalLibararies里查看導入了哪些包

實(shí)體類(lèi)(User.java)

創(chuàng )建一個(gè)對應數據庫表的實(shí)體類(lèi),代碼如下

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”,鼠標單擊右鍵也會(huì )有個(gè)Generate選項


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

配置User實(shí)體類(lèi)(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í)體類(lèi),table寫(xiě)上實(shí)體類(lèi)對應表格的名字 -->
        <id name="id" column="id"><!-- id是實(shí)體類(lèi)屬性的名字,column是表格中與實(shí)體類(lèi)對應的列名(如果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><!-- 方言模式,不同的數據庫用不同的方言,里面的值要寫(xiě)全,下面會(huì )給出一個(gè)表 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!-- mysql驅動(dòng) -->
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai</property><!-- 數據庫連接,填上面IDEA連數據庫的那個(gè)界面里的URL -->
		<property name="hibernate.connection.username">root</property><!-- MySQL用戶(hù)名 -->
		<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的,詳細的可以參考這篇文章

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

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

測試是否配置成功

創(chuàng )建一個(gè)用于測試的文件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”執行該函數可看到如下輸出


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


配置成功

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

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

伦人伦XXX国产对白| 亚洲AV无码乱码在线观看性色| 欧美另类熟妇XXXX久久A片| 人妻互换免费中文字幕| 亚洲成AV大片大片在线播放| 免费的污污的网站在线观看|