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

}

6.测试结果

看到绿条,测试成功

Navicat查看数据库也有相应的数据

猜你喜欢

转载自blog.csdn.net/qq_41900081/article/details/83412757