- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- IDEA2019.3配置Hibernate的詳細教程(未使用IDEA的自動(dòng)
創(chuàng )建一個(gè)純java項目,什么都不選直接建
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中連接數據庫的步驟如下
配置完的完整文件結構如下圖
在菜單選擇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里查看導入了哪些包
創(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
<?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>
<!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í),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站