Hibernate環境搭建過程

B站Hibernate教學視頻原網址

  • 下邊代碼是照着視頻一步步寫出來的。由於沒有視頻中老師所寫的文件。所以xml文件中的dtd約束是直接在網上搜到複製來的。
  • 和視頻中一樣,用的MySQL數據庫。數據庫軟件是看這個視頻之前就裝好的。如果看視頻的朋友沒有安裝MySQL。這個可能會耗費一點時間。其他數據庫應該也可以。不過我沒有試過。用MySQL照着操作。直接就成功出現視頻中的預期結果了。美中不足的是,數據庫中中文亂碼了。應該是某種編碼格式的錯誤。無傷大雅。
  • 代碼中的註釋基本上是照着老師的敲下來的,文字不完全一樣,意思一樣。數據庫配置文件中有些是複製來的。
  • 最後圖中截取了eclipse裏實際的文件結構。lib包裏的hibernatejar包和老師視頻中的完全一致。之前也嘗試過配置hibernate。看過網上的一些博客教程。但是由於對數據庫不很熟悉。用的包也和博客中的不完全一致。所以並沒有成功。這次爲此特意在看視頻的過程中停下來去專門下載老師用的jar包版本。好在還都下到了。
  • 之前看的博客中博主都說自己照着博客的步驟做就成功了,但是我在跟着做的時候經常會發生有的博客中寫好的步驟,在操作的時候並不能實現。我寫這個過程也不敢保證說照着做就能成功。只是把我實際成功時用的代碼貼上來。給自己做個備份。也方便其他人看照這個視頻學習的時候可以複製下代碼。
//User.java
package cn.itcast.entity;

public class User {

	/*hibernate要求實體類有一個屬性唯一的*/
	private int uid;
	private String username;
	private String password;
	private String address;
	
	public int getUid() {
		return uid;
	}
	public void setUid(int uid) {
		this.uid = uid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}

}

//User.hbm.xml
<?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>
	<!-- 1配置類和表對應 
		class標籤
		name屬性:實體類全路徑
		table屬性:數據庫表名稱
	-->
	<class name="cn.itcast.entity.User" table="t_user">
		<!-- 2配置實體類id和表id對應
			hibernate要求實體類有一個屬性唯一值
			hibernate要求表有字段作爲唯一值
		 -->
		 <!-- id標籤
		 	name屬性:實體類裏面id屬性名稱
		 	column屬性:生成的表字段名稱
		  -->
		 <id name="uid" column="uid">
		 	<!-- 設置數據庫表id增長策略 
		 		native:生成表i值就是主鍵自動增長
		 	-->
		 	<generator class="native"></generator>
		 </id>
		 <!-- 配置其他屬性和表字段對應 
		 	name屬性:實體類屬性名稱
		 	column屬性:生成表字段名稱
		 -->
		 <property name="username" column="username"></property>
		 <property name="password" column="password"></property>
		 <property name="address" column="address"></property>
	</class>
</hibernate-mapping>
    
//HibernateDemo.java
package cn.itcast.hibernatetest;

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

import cn.itcast.entity.User;

public class HibernateDemo {

	@Test
	public void testAdd()	{
//	第一步	加載hibernate核心配置文件
		//到src下面找到名稱是hibernate.cfg.xml
		//在hibernate裏封裝對象
		Configuration cfg = new Configuration();
		cfg.configure();
//	第二步	創建seccionFactory對象
		//讀取hibernate核心配置文件內容,創建sessionFactory
		//在過程中,根據映射關係,在配置數據庫裏面把表創建
		SessionFactory sessionFactory = cfg.buildSessionFactory();
		
//	第三步	使用sessionFactory創建session對象
		// 類似於連接
		Session session = sessionFactory.openSession();
		
//	第四步	開啓事務
		Transaction tx = session.beginTransaction();
		
//	第五步	寫具體邏輯 crud 操作
		// 添加功能
		User user = new User();
		user.setUsername("小王");
		user.setPassword("250");
		user.setAddress("日本");
		//調用session的方法實現添加
		session.save(user);
		
		
//	第六步	提交事務
		tx.commit();
		
//	第七步	關閉資源
		session.close();
		sessionFactory.close();
	}
}

<?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>
		<!-- //MySQL驅動類 -->
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_day01</property>
		<!-- //MySQL連接端口號(3306)與數據庫(myee) -->
		<property name="hibernate.connection.username">root</property>
		<!-- //MySQL用戶名 -->
		<property name="connection.password">111111</property>
		<!-- //MySQL用戶密碼 -->
		<!-- 第二部分:配置hibernate信息 可選的 -->
		<!-- 輸出底層sql語句 -->
		<property name="hibernate.show_sql">true</property>
		<!-- //顯示hibernate對數據庫操作語句 -->
		<!-- 輸出底層sql語句 格式化 -->
		<property name="hibernate.format_sql">true</property>
		<!-- //格式化Hibernate的SQL輸出語句 -->
		<!-- hibernate幫創建表,需要配置之後 update:如果已經有表,更新,如果沒有,創建 -->
		<property name="hibernate.hbm2ddl.auto">update</property>
		<!-- //自動創建|更新|驗證數據庫表結構。如果不是此方面的需求建議set value="none" -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<!-- //dialect翻譯爲方言 Hibernate根據你選擇的“方言”,針對每種數據庫,作調整,如生成不同的SQL語句等 -->

		<!-- 第三部分:把映射文件放到核心配置文件中 必須的 -->
		<mapping resource="cn/itcast/entity/User.hbm.xml" />
		
	</session-factory>
</hibernate-configuration>

hibernate環境文件結構 eclipse中JUnit單元測試結果截圖 Hibernate在MySQL數據庫中自動給創建的表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章