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