Hibernate环境搭建(小实例)

2023-11-07

       Hibernate是一个开源的对象关系映射框架,在学习之前,首先让我们先了解一下Hibernate环境是如何搭建的。废话不多说,直接进入正题。


建项目,引Jar包

      首先,我们需要创建一个Java项目,创建好项目之后,就需要引入与Hibernate相关的jar包。这里,我把这些jar包统一的加到一个库中。我们自己建立一个库“HIBERNATE3”,把Hibernate中的第三方jar包和Hibernate.jar都引入,当然,还有数据库的jdbc驱动(我这里用的是mysql)如图:



      然后,我们就可以把建好的库引入到项目中了,具体操作为:右键项目名称-->Properties-->Java Build Path,如图:



核心文件配置

        到现在,已经把建好的库引入到项目中了,之后我们要做的就是,把Hibernate的核心配置文件(hibernate.cfg.xml)引入到项目中,该核心配置文件会给Hibernate提供数据库的映射,使得Hibernate与数据库进行连接。如图所示:



        之后,我们需要对Hibernate核心文件做一下配置,加入MySQL的JDBC驱动,配置数据库连接。代码如下:

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">bjpowernode</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="hibernate.show_sql">true</property>

	</session-factory>
</hibernate-configuration>


建立实体类

      到这里,简单的环境就搭建好了,之后就是建立实体类,并对实体类进行映射了。为了方便起见,建立一个User实体类,并且定义了几个简单的属性。代码如下:

package com.bjpowernode.hibernate;

import java.util.Date;

public class User {

	private String id;
	
	private String name;
	
	private String password;
	
	private Date createTime;
	
	private Date expireTime;

	public String getId() {
		return id;
	}

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

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getExpireTime() {
		return expireTime;
	}

	public void setExpireTime(Date expireTime) {
		this.expireTime = expireTime;
	}
}


映射文件配置

        实体类建立好之后,就需要将实体类与数据库进行映射,建立数据库映射文件(User.hbm.xml),代码如下:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.bjpowernode.hibernate.User">
		<id name="id">
			<generator class="uuid"></generator>
		</id>
		<property name="name"></property>
		<property name="password"></property>
		<property name="createTime"></property>
		<property name="expireTime"></property>
	</class>
</hibernate-mapping>


        实体类的映射完成之后,我们还需要把实体类的映射源文件加入到Hibernate的核心配置文件中,代码如下所示:

<session-factory>
	<mapping resource="com/bjpowernode/hibernate/User.hbm.xml"/>
</session-factory>


导入数据表

        然后,我们还需要建立一个小Demo,通过读取hibernate.cfg.xml文件,实现建立数据表结构。(部分代码):
public static void main(String[] args) {
		
	// 默认读取hibernate.cfg.xml文件
	Configuration cfg = new Configuration().configure();
		
	SchemaExport export = new SchemaExport(cfg);
		
	export.create(true, true);
}


测试客户端

        最后,你可以建立一个客户端,对其进行测试,给数据库中插入几条数据。

package com.bjpowernode.hibernate;

import java.util.Date;

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

public class Client {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		// 读取hibernate.cfg.xml文件
		Configuration cfg = new Configuration().configure();
		
		// 建立SessionFactory
		SessionFactory factory = cfg.buildSessionFactory();
		
		// 取得session
		Session session = null;
		try {
			session = factory.openSession();
			
			// 开启事务
			session.beginTransaction();
			
			User user = new User();
			user.setName("Tom");
			user.setPassword("123");
			user.setCreateTime(new Date());
			user.setExpireTime(new Date());
			
			//保存User对象
			session.save(user);
			
			// 提交事务
			session.getTransaction().commit();
		} catch (Exception e) {
			e.printStackTrace();
			// 回滚事务
			session.getTransaction().rollback();
		} finally {
			if(session != null) {
				if(session.isOpen()) {
					// 关闭session
					session.close();
				}
			}
		}	
	}
}


测试结果

         下面来看一下我们建立的表user以及user的表结构,如图:


        最后,我们执行测试客户端,来看一下插入的数据,如图:


结束语

       到这里,简单的搭建环境小实例就结束了,看到这,你明白如何搭建自己的Hibernate环境并对其进行测试了吗?这只是一个简单的小例子,Hibernate对JDBC提供了轻量化的对象封装,使得程序员可以对象的编程思维对数据库进行操作,而无需了解繁琐的数据表结构。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate环境搭建(小实例) 的相关文章

  • java -version 时出现 could not open D:\java\lib\i386\jvm.cfg是什么意思

    简单分几步 删除之前的jdk 删除注册表中相关项 重新安装 注意安装路径不要改变 跟之前可以用的时候一样 配置环境变量 应该是文件缺失导致的问题 JDK在安装的过程当中将会生成如下3个项目 HKEY LOCAL MACHINE SOFTWA
  • java开发:java多线程(三):lock方式实现线程同步机制

    java多线程系列文章 java多线程 一 synchronized 对象锁和类锁的区别 java多线程 二 wait sleep join 和yield 区别 这章博客讲解lock如何实现同步机制 比较和synchronized 的区别
  • java 按list对象多个字段排序

    Java List中的数据如何根据对象的某一个或多个字段排序引出Comparable和comparator的使用 第一节 对于引入题目的探讨 首先把引入题目表述的清楚一些 在一个List中存储的是一些对象实例 而对象实例包含多个属性字段 我
  • JVM垃圾回收器

    1 垃圾回收器的位置 2 垃圾回收器的基本概念 什么是垃圾回收器 JVM 为 Java 提供了垃圾回收机制 是一种偏自动的内存管理机制 简单来说 垃圾回收器会自动追踪所有正在使用的对象 并将其余未被使用的对象标记为垃圾 JVM会自动进行垃圾
  • JAVA代码实现抖音转载视频无水印视频,亲测通过

    许多小伙伴想做抖音视频 无奈没有摄影器材 也没有取景材料 就想着去用别人人气视频来提高自己的粉丝量 可问题又来了 别人的视频通过分享 或者链接根本不是原创 上面还带着水印 视频一挂上去就被发现了 小则视频不通过 给出警告 大则封号 降低视频
  • SpringMVC复习总结

    一 SpringMVC简介 1 什么是SpringMVC MVC是什么 MVC是一种软件架构的思想 将软件按照模型 视图 控制器来划分 M Model 模型层 指工程中的JavaBean 作用是处理数据 JavaBean分为两类 一类称为实
  • layui的自定义page

    一 前端页面使用laypage div align center style margin top 20px div let totalCount 0 getPageData 1 6 function getPageData page li
  • Java 两点经纬度计算距离和角度

    角度 计算两点对于正北方向的朝向角度 0 360 param start format latitude 30 longitude 120 param end private static double bearing List
  • oracle查询用户及查看表空间

    查询用户 查看数据库里面所有用户 前提是你是有dba权限的帐号 如sys system select from dba users 查看你能管理的所有用户 select from all users 查看当前用户信息 select from
  • Tigase开发笔记5:如何自定义插件 Plugin

    其他博客比较好的介绍推荐 http my oschina net greki blog 209726 1 定义一个插件 四种处理器插件接口 第一步 预处理 XMPPPreprocessorIfc 这是预处理器插件需要实现的接口 第二步 处理
  • IDEA 无法正确install springboot以及其他maven dependency

    java Maven plugins can not be found in IntelliJ Stack Overflow 由于使用了私有的maven仓库 我在 m2 下面设置了setting xml 然后就怎么也没法自动install
  • Java private方法访问

    大家知道 Java中private修饰符修饰的方法或属性 只有在该类内可以访问 其他类均无法访问 事实真的是这样吗 下面一个例子可以实现访问一个类中的private方法 原理是通过Java的反射机制 感觉Java反射机制在这点似乎不太安全
  • maven打包时和 deploy时候将不会 依赖包含在生成的项目 jar中方法

    用 provided
  • bootstrap File Input 多文件上传插件使用记录(二)删除原文件

    bootstrap File Input 多文件上传插件使用记录 二 删除原文件 转自https blog csdn net github 36086968 article details 72830855 在上一篇文章中 主要介绍了fil
  • Java&JS时间格式转化

    时间格式转化 一 Java格式转化 1 1 接收前端传值转化 1 2 String转化LocalDate 1 3 LocalDate与Date相互转换 二 Javascript格式转化 2 1 JS时间格式转化 一 Java格式转化 1 1
  • mycat实现mysql读写分离,热切换,集群

    在互联网时代 实现mysql读写分离 热切换 集群能大大提高mysql数据库访问压力 防止数据丢失 使用mycat能帮我们实现这些 我们要实现的是这种架构 1 Mycat能实现数据库的垂直切分和水平切分 这里用户写数据的时候 通过mycat
  • Elasticsearch在SpringBoot项目中简单使用

    目录 概要 在Spring Boot项目中的使用 一 添加依赖 二 配置连接 三 创建实体类 四 创建Repository 五 使用Repository 总结 概要 Elasticsearch 简称ES 是一个开源的分布式搜索和分析引擎 基
  • MAC软件推荐(Java方向)

    MAC软件推荐 Tabby 终端控制工具 keka 解压工具 typora Markdown工具 QuickRedis Redis视图工具 UTM 虚拟机 Navicat Premium 数据库工具 Adobe Photoshop CC 2
  • mysql 新版本出现group by 语句不兼容问题

    原文地址 http www cnblogs com anstoner p 6414440 html 注 文中的方式 我只是用了修改sql mode 的方法 其它的未尝试 全文如下 目录 1 具体出错提示 1 1 1 查看sql mode 1
  • Minio有了这篇文章,比SDK要好入门多了

    想学minio 看小编这边文章可以解决你很多问题 一 安装minio 1 1 创建文件夹 并在指定文件夹中下载minio文件 1 2 赋予minio文件执行权限 1 3 启动minio 1 4 修改环境变量 1 5 指定端口启动minio服

随机推荐