20191118002-Hibernate入门-Hibernate环境搭建

1.1 Hibernate环境搭建

1. 创建基于Meven的Java项目,pom.xml中的配置如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.qingyun</groupId>
    <artifactId>hibernate_chapter01_example</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!--引入Oracle所需依赖-->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>12.1.0.2</version>
        </dependency>

        <!--引入Hibernate所需依赖-->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.6.10.Final</version>
        </dependency>

        <dependency>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.12.0.GA</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-nop</artifactId>
            <version>1.7.2</version>
        </dependency>
    </dependencies>

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

            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>

        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

Hibernate所需jar文件说明

名称 说明
antlr-2.7.6.jar 语法分析器
commons-collections-3.1.jar 各种集合类和工具类的封装
dom4j-1.6.1.jar XML的读写
javassist-3.12.0.GA.jar 分析、编辑和创建Java字节码的类库
jta-1.1.jar Java事务API
slf4j-api-1.6.1.jar 日志输出
hibernate-jpa-2.0-api-1…0.1.Final.jar 提供对JPA(Java持久化API)规范的支持

2.创建Hibernate配置文件hibernate.cfg.xml

      Hibernate配置文件主要用于配置数据库连接和Hibernate运行时所需的各种特性。在项目的resources目录下添加配置文件,该配置文件需要配置数据库连接信息和Hibernate的参数。

<?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>
       <!--数据库URL-->
       <property name="connection.url">
           jdbc:oracle:thin:@localhost:1521/orcl
       </property>
       <!--数据库用户-->
       <property name="connection.username">scott</property>
       <!--用户密码-->
       <property name="connection.password">123456</property>
       <!--数据库JDBC驱动-->
       <property name="connection.driver_class">
           oracle.jdbc.driver.OracleDriver
       </property>
       <!--每个数据库都有对应的方言(Dialect)以匹配其平台特性-->
       <property name="dialect">
           org.hibernate.dialect.Oracle10gDialect
       </property>
       <!--指定当前session范围和上下文-->
       <property name="current_session_context_class">thread</property>
       <!--是否格式化SQL-->
       <property name="format_sql">true</property>

       <!--是否打印sql语句-->
       <property name="show_sql">true</property>

       <!--映射文件配置,注意文件名必须包含其相对于classpath的全路径-->
       <mapping resource="com/qingyun/pojo/Dept.hbm.xml"/>
   </session-factory>
</hibernate-configuration>

3.创建持久化类和映射文件

  • 创建实体类
package com.qingyun.pojo;

import java.io.Serializable;

public class Dept implements Serializable {
    private Byte deptNo;
    private String deptName;
    private String location;

    public Byte getDeptNo() {
        return deptNo;
    }

    public void setDeptNo(Byte deptNo) {
        this.deptNo = deptNo;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }
}

      Dept持久化类有一个deptNo属性,用来标识Dept类的每一个实例。deptNo属性又称为id属性。在Hibernate中,这个id被称为对象标识符(Object Identifier,OID),一个Dept实例和DEPT表中的一条记录对应。

  • 在实体类同包目录下创建映射文件,映射文件用于告诉Hibernate,JavaBean实体属性对应数据库中的哪一个字段。在Hibernate中,映射文件通常与对应的持久化类同名,并以“.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>
    <class name="com.qingyun.pojo.Dept" table="`DEPT`" schema="scott" dynamic-update="true">
        <id name="deptNo" type="java.lang.Byte" column="`DEPTNO`">
            <generator class="increment"></generator>
        </id>
        <property name="deptName" type="java.lang.String" column="`DNAME`"/>
        <property name="location" type="java.lang.String">
            <column name="`LOC`"></column>
        </property>
    </class>
</hibernate-mapping>
发布了56 篇原创文章 · 获赞 17 · 访问量 6189

猜你喜欢

转载自blog.csdn.net/qq_43199016/article/details/103129495