Hibernate学习总结(一)——Intellij IDEA下新建Hibernate HelloWorld

本文介绍Hibernate框架的基本概念,演示如何在IntelliJ IDEA中搭建开发环境,并通过实例展示如何使用Hibernate API进行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate概述

Hibernate是java领域的一款轻量级ORM(对象关系模型)框架,它对JDBC进行了封装,实现了从关系型数据库到面向对象的领域模型的映射,可以将对象自动映射成数据库中的信息。它还提供了面向对象的数据查询检索机制,这样我们就不用关心繁琐的JDBC,从而极大缩短了手动处理SQL和JDBC上的开发时间。

Hibernate开发环境搭建

mysql数据库

既然Hibernate是一款ORM框架,那就涉及到数据库操作。这里我们用最常见的开源关系型数据库mysql,具体安装办法我这里不细说,不懂的可以百度谷歌。这里我主要说说在Intellij IDEA下搭建Hibernate开发环境。

Intellij IDEA

相比于eclipse,JetBrains公司的Intellij IDEA更智能,操作方便,还可以兼容eclipse的项目。Google的Android Studio也是在Intellij IDEA的基础上开发的。

(一)新建maven项目,通过maven管理依赖

这里写图片描述

(二)填写项目GroupId和ArtifactId,点击next

这里写图片描述

(三)填写项目名称,选择项目存放位置,点击finish

这里写图片描述

项目目录结构如图所示:

这里写图片描述

这里我说一下文件夹的主要功能:

  • java:存放代码
  • resources:存放配置文件
  • test:存放测试代码
  • pom.xml:maven的依赖文件,以来都在这里添加

(四)添加依赖

建好项目以后,接下来就是要添加hibernate依赖了。由于Hibernate要连接mysql,所以还要添加mysql驱动。这样maven会自动下载jar包到本地仓库。

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.doubecharli</groupId>
    <artifactId>hibernate</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <!--hibernate-->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.1.0.Final</version>
        </dependency>

        <!--mysql driver-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency>

    </dependencies>

</project>

Hibernate第一个实例

上面我们把开发环境搭好了,到这里我们就可以开撸了。使用Hibernate一共有四步,分别是:

  • 创建Hibernate配置文件
  • 创建持久化类
  • 创建映射文件
  • 通过Hibernate API访问数据库
创建Hibernate配置文件

配置文件主要是配置数据库的一些信息,包括用户名和密码等。它可以是properties文件,也可以是xml文件,比较常用的是xml文件。这里我用的是xml文件,默认名为hibernate.cfg.xml,放在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>

        <!-- 指定连接数据库所用的驱动 -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- 指定连接数据库的url,hibernate连接的数据库名 -->
        <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
        <!-- 指定连接数据库的用户名 -->
        <property name="hibernate.connection.username">root</property>
        <!-- 数据库的登陆密码 -->
        <property name="hibernate.connection.password">199498xy</property>
        <!-- 指定连接数据库的编码 -->
        <property name="connection.characterEncoding">utf8</property>
        <!-- 指定数据库方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 显示Hibernate持久化操作所生成的SQL -->
        <property name="show_sql">true</property>
        <!-- 将SQL脚本进行格式化后再输出 -->
        <property name="format_sql">true</property>
        <!-- 指定自动生成数据表的策略 -->
        <property name="hbm2ddl.auto">update</property>

        <!-- 罗列所有的映射文件 -->
        <mapping resource="mapping/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

代码我不多说,重要的都写了注释,相信都看得明白。这里要说的是mapping节点,它用来指明映射文件的位置,一个映射文件对应一张表,每个映射文件都要在这里列出来。映射文件的内容就是我们后面第三步要说的。

创建持久化类

持久化类就是一个简单的java bean,bean的属性对应表的字段,一个类对应一张表

User.java

package com.doubecharli.bean;

/**
 * Created by Administrator on 2016/12/15.
 */
public class User {
    private String id;
    private String username;
    private int password;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public int getPassword() {
        return password;
    }

    public void setPassword(int password) {
        this.password = password;
    }
}
创建映射文件

映射文件是根据持久化类来写的,还要在配置文件hibernate.cfg.xml中声明。它就相当于持久化类和数据库中表的一座桥梁,Hibernate就是通过它找到数据库的对应字段,从而进行增删查改操作的

User.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.doubecharli.bean.User" table="user" schema="hibernate">
        <id name="id" column="id"/>
        <property name="username" column="username"/>
        <property name="password" column="password"/>
    </class>
</hibernate-mapping>

class节点的name属性指明映射文件对应的类,tabel指明数据库中对应的表;id节点对应数据库的主键;property 节点的name属性指明持久化类的属性,column指明表的字段

通过Hibernate API访问数据库

到这里我们已经完成了Hibernate的基本搭建,最后一步就是要通过Hibernate的各种API来操作数据库,这也是我们要达到的目的。由于篇幅有限,我这里主要是向数据库中插入一条数据,其他的API我会在后面的文章讲。话不多少,上代码!

package com.doubecharli;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

/**
 * Created by Administrator on 2016/12/15.
 */
public class HibernateTest {

    public static void main(String[] args) {
        // 加载Hibernate默认配置文件
        Configuration configuration = new Configuration().configure();
        // 用Configuration创建SessionFactory
        SessionFactory factory = configuration.buildSessionFactory();
        // 创建Session
        Session session = factory.openSession();
        // 开启事务
        Transaction transaction = session.beginTransaction();
        // 实例化持久化类
        User user = new User();
        user.setId("1");
        user.setUsername("doubecharli");
        user.setPassword(123456);
        // 保存
        session.save(user);
        // 提交事务
        transaction.commit();
        // 关闭Session,释放资源
        session.close();
        factory.close();
    }
}

执行以后,我们可以到数据库中看看,已经插入了一条记录!说明我们已经通过Hibernate的API来操作数据库,是不是很方便?再也不用写去复杂繁琐的JDBC了

这里写图片描述

注意:如果你的配置文件命名不是默认的hibernate.cfg.xml,你就要在代码中显式声明配置文件

Configuration configuration = new Configuration().configure("hibernate.xml");

ok,到这里我们的HelloWorld项目已经完成了,后续文章将会继续深入,晚安~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值