1. 程式人生 > >Hibernate5.3.6之最簡單demo

Hibernate5.3.6之最簡單demo

剛開始學習hibernate,把自己做第一個demo記錄下來,方便以後檢視

jdk版本:1.8

MySQL版本:8.0

mysql連線驅動版本:8.0.12

Hibernate版本:5.3.6

1.這個是我的目錄結構:

需要的Hibernate包

2.編寫一個持久化類,這裡是一個User類

package com;
public class User {
	private int id; 
	private String name;
	private String password;
	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 String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	User(){}
	User(String name, String password ){		
		this.name = name;
		this.password = password;	
	}
	@Override
	public String toString() {
		return "User [name=" + name + ", password=" + password + "]";
	}	
}

3.Hibernate對映

對映檔案的命名規則是*.hbm.xml,我這裡是User.hbm.xml,注意要與持久化類(User.java)放在同一個包下面

<?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">
<!-- Generated 2018??10??16?? ????9:55:19 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="com.User" table="USER">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="native" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="PASSWORD" />
        </property>
    </class>
</hibernate-mapping>

4.Hibernate配置檔案

<?xml version="1.0" encoding="UTF-8"?>
<!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.connection.url">jdbc:mysql://127.0.0.1:3306/test?useSSL=false&amp;serverTimezone=UTC
</property>
  <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
  <property name="hibernate.connection.password">root</property>
   <property name="hibernate.connection.username">root</property>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
  <property name="hibernate.show_sql">true</property>
  <property name="hibernate.format_sql">true</property>
  <property name="hibernate.hbm2ddl.auto">update</property>
 <mapping class = "com.User"></mapping>
  <mapping resource="com/User.hbm.xml"/>
 </session-factory>
</hibernate-configuration>

這裡要引入核心對映檔案,記得寫入完整路徑名:com/User.hbm.xml

5.編寫一個測試類  

新建一個Junit測試用例,匯入相關包

package com;



import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.jupiter.api.Test;

class UserTest {

	@Test
	void test() {
		/*User user = new User("123", "2123");
		System.out.println(user.getId());*/
		//建立工廠
				SessionFactory	sessionFaction = null;
				//載入				
				Configuration configuration = new Configuration().configure();		       
				ServiceRegistry serviceRegistry = configuration.getStandardServiceRegistryBuilder().build();
				sessionFaction	= new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
				//建立、開啟會話
				Session session = sessionFaction.openSession();
				//建立事務
				Transaction transaction = session.beginTransaction();
				
				User user = new User("帥比","1433223");
				session.save(user);
				//提交事務
				transaction.commit();
				//關閉工廠
				session.close();
				//關閉工廠類
				sessionFaction.close();
	}

}