hibernate是使用pojo类和数据库表映射的方式,因此hibernate的创建和配置需要有:
1.导包
2.创建hibernate.cfg.xml核心配置文件
3.创建与数据库表所对应的pojo类
4.创建和配置让数据库表和pojo类能映射起来的映射文件Goods.hbm.xml文件
5.测试
1.首先创建一个项目后,在pom.xml文件中导入hibernate所需要的依赖
<dependencies>
<!– hibernate的核心依赖包 –>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.6.Final</version>
</dependency>
<!– jdbc的包 –>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<!– 查看日志文件的log4j包 –>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<!– 测试用的依赖包 –>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
maven会自动将hibernate其他所需要的依赖包自动导入,最后可以在文件目录下查看

2.创建一个hibernate.cfg.xml文件,注意这个名称不可变
在其中配置连接数据库所需要的信息:驱动路径,url,数据库的账号,密码
注意这个文件如果使用maven的话只能创建在src/main/resources下,不要有多层目录。
如果没有使用maven,将其创建在src目录下即可

<?xml version=‘1.0‘ encoding=‘utf-8‘?>
<!DOCTYPE hibernate-configuration PUBLIC
“-//Hibernate/Hibernate Configuration DTD//EN”
“http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd”>
<hibernate-configuration>
<session-factory>
<!– 连接数据库的基本信息 –>
<!– 驱动路径 –>
<property name=”hibernate.connection.driver_class”>com.mysql.jdbc.Driver</property>
<!– url –>
<property name=”hibernate.connection.url”>jdbc:mysql://localhost:3306/test</property>
<!– 用户名 –>
<property name=”hibernate.connection.username”>root</property>
<!– 密码 –>
<property name=”hibernate.connection.password”>root</property>
<!– 方言 –>
<!– 告诉框架使用了什么数据库 –>
<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>
<!– 加载映射文件 –> <!– 在第三步配置pojo类和数据库表的映射文件 –>
<mapping resource=”Goods.hbm.xml” />
</session-factory> </hibernate-configuration> 3.创建pojo类 一定要给其,get和set方法,因为hibernate是使用get和set方法来进行数据库的增删查改的 private int id;
private String goodsName;
private double goodsPrice;
private String goodsType;
private int goodsNumber; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getGoodsName() {
return goodsName;
} public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
} public double getGoodsPrice() {
return goodsPrice;
} public void setGoodsPrice(double goodsPrice) {
this.goodsPrice = goodsPrice;
} public String getGoodsType() {
return goodsType;
} public void setGoodsType(String goodsType) {
this.goodsType = goodsType;
} public int getGoodsNumber() {
return goodsNumber;
} public void setGoodsNumber(int goodsNumber) {
this.goodsNumber = goodsNumber;
} @Override
public String toString() {
return “Goods [id=” + id + “, goodsName=” + goodsName + “, goodsPrice=” + goodsPrice + “, goodsType=”
+ goodsType + “, goodsNumber=” + goodsNumber + “]”;
} 4.创建和配置pojo类和数据库表的映射文件Goods.hbm.xml 这个文件名可以随便,但后缀以xxx.hbm.xml结尾 <?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE hibernate-mapping PUBLIC
“-//Hibernate/Hibernate Mapping DTD 3.0//EN”
“http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd”>
<hibernate-mapping>
<!– name:实体路径 table:实体对应的表名 –>
<class name=”com.oracle.pojo.Goods” table=”goods”>
<!– column:数据库表的列 name:实体类中对应的名称 –>
<!– id标签只配主键,其余的列用property配置 –>
<id name=”id” column=”id” >
<!– 主键的生成策略 –>
<!– 自增长,序列化等等 –> <!–native可以由hibernate自动判断使用的主键生成策略–>
<generator class=”native”></generator>
</id>
<property name=”goodsName” column=”goodsName”></property>
<property name=”goodsPrice” column=”goodsPrice”></property>
<property name=”goodsType” column=”goodsType”></property>
<property name=”goodsNumber” column=”goodsNumber”></property>
</class>
</hibernate-mapping> 5.测试是否配置成功 我们在第一步已经导入了测试所需要的包,直接使用即可 private Session session = null;
private Transaction transaction = null; @Before
public void Util() {
// 加载配置文件
Configuration configuration = new Configuration().configure();
// 获取session工厂对象
SessionFactory sessionFactory = configuration.buildSessionFactory();
// 从工厂获取session对象
session = sessionFactory.openSession();
// 开启事务
transaction = session.beginTransaction();
} @org.junit.Test
public void testName() throws Exception { //根据主键传入参数查询
Goods goods = session.get(Goods.class, 1);
System.out.println(goods); //提交事务
transaction.commit(); //关闭连接
session.close();
} 结果如下: