数据库ORM 框架hibernate学习篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30519365/article/details/82952247

数据库ORM 框架hibernate学习篇

1.添加所需要的jar 或者Maven依赖

这里用Maven :

 <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-search-orm</artifactId>
            <version>5.8.0.Final</version>
        </dependency>
        <!-- mysql驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.18</version>
        </dependency>

2添加配置文件处理数据库底层的配置:

hibernate.cfg.xml

<?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="connection.username">root</property>
		<property name="connection.password">123456</property>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql:///stu</property>
		<!-- 配置 hibernate 的基本信息 -->
		<!-- hibernate 所使用的数据库方言 -->
		<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>		
		<!-- 执行操作时是否在控制台打印 SQL -->
		<property name="show_sql">true</property>
		<!-- 是否对 SQL 进行格式化 -->
		<property name="format_sql">true</property>
	
		<!-- 指定自动生成数据表的策略 -->
		<property name="hbm2ddl.auto">update</property>
		
		<!-- 指定关联的 .hbm.xml 文件 -->
		<mapping resource="bean/Demo.hbm.xml"/>
	
	</session-factory>

</hibernate-configuration>

3添加ORM 映射配置文件:Demo.hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 

<hibernate-mapping package="bean">
   <class name="Demo" table="Demo" dynamic-insert="true">
      
      <id name="id" type="int" column="id">
         <generator class="native"/>
      </id>
      <property name="name" column="name" type="string"/>
     
   </class>
</hibernate-mapping>


4添加持久化对象:

package bean;




public class Demo {
	
	private int id;
	private String name;
	public Demo( String name) {
		
		this.name=name;
	}
	

	public Demo() {
		super();
		
	}


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

6.添加测试类:

package bean;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;
public class MyTest {
	static {
		// 4.0 之前这样创建
//		  factory = new Configuration().configure().buildSessionFactory();
		// 4.0 之后这样创建

	}
	@Test
	public void test() {
		Configuration configuration = new Configuration().configure();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
				.buildServiceRegistry();
		// 1.创建SessionFactory
		SessionFactory factory = configuration.buildSessionFactory(serviceRegistry);
		// 2.创建Session
		Session session = factory.openSession();
		// 3.开启事务
		Transaction tx = session.beginTransaction();
		// 4.执行SQL操作
		@SuppressWarnings("unchecked")

		List<Demo> demos = session.createQuery("FROM Demo").list();
		for (Demo d : demos) {
			System.out.println("demo name" + d.getName());
			System.out.println("demo id" + d.getId());
		}
		// 5.提交事务
		tx.commit();

		// 6.
		session.close();
		// 7.
		factory.close();
	}

	public void test1() {
		Configuration configuration = new Configuration().configure();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
				.buildServiceRegistry();

		SessionFactory factory = configuration.buildSessionFactory(serviceRegistry);
		Session session = factory.openSession();

		Transaction tx = session.beginTransaction();
		session.save(new Demo("ABCD"));
		tx.commit();

		session.close();
		factory.close();
	}

}

猜你喜欢

转载自blog.csdn.net/qq_30519365/article/details/82952247