Hibernate框架使用-环境搭建

Categories:

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。


1.添加jar包

pom.xml中添加依赖

<!-- hibernate依赖 -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.2.10.Final</version>
</dependency>
<!-- mysql驱动依赖 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.12</version>
</dependency>

2.配置文件

在resources下创建hibernate.cfg.xml配置文件,内容格式如下

<?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>
    <!--  mysql连接URL  -->
    <property name="connection.url">jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8
</property>
    <!--  mysql驱动  -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <!--  mysql账户名  -->
    <property name="connection.username">root</property>
    <!--  mysql密码  -->
    <property name="connection.password">root</property>
    <!--  数据库方言  -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <!--  显示sql语句  -->
    <property name="show_sql">true</property>
    <!--  格式化sql语句  -->
    <property name="format_sql">true</property>
    <mapping resource="pojo/Dept.hbm.xml"/>
  </session-factory>
</hibernate-configuration>

3.实体类和映射文件

创建实体类Dept.class

public class Dept {
   private Integer id;
   private String name;
}

映射文件Dept.hbm.xml (与实体类同包)

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <!-- class的name是实体类的全路径,table是数据库的表名 -->
    <class name="com.yht.bean.Dept" table="DEPT">
      <!-- id标签用于设置主键,name是实体类中的属性名,type是属性类型 -->
      <id name="id" type="java.lang.Integer">
          <!-- column代表数据库中的字段,name是字段名,precision有效位数,scale精度-->
          <column name="ID" precision="10" scale="0"/>
          <!-- generator主键生成策略 -->
          <generator class="identity"/>
      </id>
      <!-- property是普通的属性,name是实体类中的属性名,type是属性类型  -->
      <property name="name" type="java.lang.String">
          <!-- column代表数据库中的字段,name是字段名,length是长度-->
          <column name="NAME" length="20"/>
      </property>
    </class>
</hibernate-mapping>

附: 主键生成策略介绍 百度百科

因为xml文件在编译时不会被加载,所以会导致hibernate报错,需要在pom.xml中<project>节点中配置如下代码

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
</build>

4.使用

Hibernate使用步骤

1.读取并解析配置文件

Configuration conf = new Configuration().configure();

2.创建SessionFactory

SessionFactory sessionFactory = conf.buildSessionFactory();

3.创建Session

Session session = sessionFactory.openSession();

4.开启事务

Transaction transaction = session.beginTransaction();

5.进行数据库操作

session.save(增)/delete(删)/update(改)/get(查)/load(延迟查)

6.结束事务

transaction.commit();/transaction.rollback();

7.关闭

session.close();
sessionFactory.close();