一、新建 Java Web 项目
新建 java 项目,检查项目编码,加入 JDK1.7 及以上
二、引入 jar 包
-
引入 required 文件加下面所有的 jar 包
- antlr-2.7.7.jar 实现hql到sql的转换
- dom4j-1.6.1.jar xml解析
- geronimo-jta_1.1_spec-1.1.1.jar Geronimo是一个项目(整合优秀的组件和设计理念)
- hibernate-commons-annotations-5.0.1.Final.jar 注解
- hibernate-core-5.0.11.Final.jar 核心包
- hibernate-jpa-2.1-api-1.0.0.Final.jar hibenate对JPA的支持
- jandex-2.0.0.Final.jar 用来索引annoatation
- javassist-3.18.1-GA.jar 字节码操作
- jboss-logging-3.3.0.Final.jar 使用一个注解处理器来实现你的带注释的接口类
-
引入 jpa 文件夹下面的 jar 包
- hibernate-entitymanager-5.0.11.Final.jar hibernate对jpa的实现
-
引入 jpa-metamodel-generator 文件夹下面的 jar 包
- hibernate-jpamodelgen-5.0.11.Final.jar 关于模型自动生成的jar包
-
引入 optional / c3p0 连接池的jar包
- c3p0-0.9.2.1.jar
- mchange-commons-java-0.2.3.4.jar c3p0新版本的辅助包
- hibernate-c3p0-5.0.11.Final.jar
-
引入 optionl / ecache 下面的 slf4j-api.jar
SLF4J ,simple logging facade for java 简单的日志门面
它不是具体的日志解决方案,它只是提供了统一的记录日志的接口 ,其他组件就按照其提供的接口实现即可
- slf4j-api.jar
- slf4j-log4j.jar
- log4j.jar
slf4j 与 comm-logging 是竞争关系。
-
引入 junit / mysql / oracle
- junit-4.11.jar
- hamcrest-core-1.3.jar
- mysql-connector-java-5.0.8-bin.jar
- ojdbc14.jar
三、数据库建表,定义一个对应的实体类
数据库表:
实体类:
package com.lyu.hibernate.sysmanage.entity;
public class Student {
private Integer stId;
private String stName;
private Integer stAge;
public Integer getStId() {
return stId;
}
public void setStId(Integer stId) {
this.stId = stId;
}
public String getStName() {
return stName;
}
public void setStName(String stName) {
this.stName = stName;
}
public Integer getStAge() {
return stAge;
}
public void setStAge(Integer stAge) {
this.stAge = stAge;
}
}
四、配置 hibernate 的配置文件 hibernate.cfg.xml
-
在 hibernate-release-5.0.11.Final / project/ etc 目录下找到 hibernate 的配置文件模板 hibernate.cfg.xml 拷贝到项目的根目录下。
注:因为在后续配置 hibernate.cfg.xml 中的一些属性(如:数据库驱动,url,username,etc)的时候需要 hibernate.properties,所以先把 hibernate.properties 文件拷过来,后续配置完毕后删除即可。
-
配置数据库连接四要素
<!-- 连接数据库四要素 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hib</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123</property>
-
数据库连接池配置
<!-- 用C3P0的数据源连接方式 --> <property name="hibernate.connection.provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property>
-
数据库方言
<!-- 数据库方言 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
-
session 上下文配置
<!-- session上下文(使用当前本地的线程) --> <property name="hibernate.current_session_context_class">thread</property>
thread 表示使用当前线程。(在分布式部署的时候需要别的配置)
上面五步配置完毕后的的配置文件如下:
<?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=