一、依赖导入
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.0.7.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>5.0.7.Final</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
</dependencies>
二、配置文件
配置文件一般反正项目根目录resources下,文件名:hibernate.cfg.xml,也可以做自定义配置
<?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>
<!-- 配置SessionFactory,跟JPA中的EntityManagerFactory是对应的
是为了创建Session对象。Session对象就对应JPA中的EntityManager
Hibernate中的Session和我们之前讲的WEB阶段HttpSession没有任何关系
配置SessionFactory,需要提供3部分信息
第一部分:连接数据库的信息
第二部分:hibernate的可选配置
第三部分:映射文件或者注解类的位置
-->
<session-factory>
<!-- 第一部分:连接数据库的信息 -->
<!-- 连接数据库的必要信息 -->
<property name="hibernate.connection.driver_class" >com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url" >jdbc:mysql://localhost:3306/ee39_jpa</property>
<property name="hibernate.connection.username" >root</property>
<property name="hibernate.connection.password" >1234</property>
<!-- 第二部分:hibernate的可选配置 -->
<property name="hibernate.dialect" >org.hibernate.dialect.MySQLDialect</property><!-- 用于指定数据库方言 -->
<!-- 显示sql语句 -->
<property name="hibernate.show_sql" >true</property>
<!-- 格式化SQL语句 -->
<property name="hibernate.format_sql" >true</property>
<!-- 配置数据源的提供商 -->
<property name="hibernate.connection.provider_class" >org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- 配置生成ddl语句的方式:选择何种方式生成ddl语句-->
<property name="hibernate.hbm2ddl.auto" >update</property>
<!-- 第三部分:映射文件或者注解类的位置 -->
<mapping class="com.itheima.domain.Customer"/>
</session-factory>
</hibernate-configuration>
三 ,工具类
public class HibernateUtil {
//1.定义SessionFactory
private static SessionFactory factory;
//2.使用静态代码块给factory赋值
static {
//读取配置文件
Configuration cfg = new Configuration();//创建对象
cfg.configure();//读取配置,没传参数表示去类的根路径下读取名称为hibernate.cfg.xml的配置文件
//根据配置文件构建工厂对象
factory = cfg.buildSessionFactory();
}
//3.提供一个静态方法,返回factory生产的Session对象
public static Session openSession() {
return factory.openSession();
}
}