Hibernate学习------入门

Hibernate学习------入门篇

由于最近在找工作 , 之前所做的项目都是基于SSM开发很少去使用到Hibernate框架而最近面试过程中都问到了Hibernate框架的一些问题 , 于是就重新复习一下如何使用这个框架

什么是Hibernate

Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java对象!

什么是ORM

ORM概述
在介绍Hibernate的时候,说了Hibernate是一种ORM的框架。那什么是ORM呢?ORM是一种思想

  • O代表的是Objcet
  • R代表的是Relative
  • M代表的是Mapping
    下图是ORM关注的对象与数据库的联系
    在这里插入图片描述

Hibernate入门

学一个框架入门无非就就是一下几个步骤:

  • 导入jar包
  • 写配置文件
  • 熟悉API

创建数据表

CREATE DATABASE userdemo1 DEFAULT CHARACTER SET utf8;
USE 'userdemo1';
DROP TABLE IF EXISTS 'test_user';
CREATE TABLE test_user(
uid INT NOT NULL AUTO_INCREMENT COMMENT '用户id' , 
username varchar(20) DEFAULT NULL COMMENT '用户姓名 ',
password varchar(20) DEFAULT NULL COMMENT ' 密码',
PRIMARY KEY(uid)
) CHARSET=utf8 COMMENT '用户表';

导入jar包

这次主要使用的jar包是>hibernate-core-5.0.7.Final
以下是pom.xml文件中的依赖:

<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.GaoGe</groupId>
	<artifactId>HibernateStudyDemo01</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-parent</artifactId>
			<version>3.6.10.Final</version>
			<type>pom</type>
		</dependency>


		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
		<!-- 添加Hibernate依赖 -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>5.0.7.Final</version>
		</dependency>

		<!-- 添加Log4J依赖 -->
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.16</version>
		</dependency>

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

		<!-- 添加javassist -->
		<dependency>
			<groupId>javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>3.12.0.GA</version>
		</dependency>

		<!-- mysql数据库的驱动包 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.6</version>
		</dependency>
	</dependencies>
</project>

基本每个jar包上都有注解这个jar包的名字

写配置文件

Hibernater的配置文件分成两个部分

1. 第一个配置文件是表与属性的映射关系>*.hbm.xml ‘(例: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="entity.User" table="test_user">
		<!-- 建立类中属性与表中主键相对应 -->
		<id name="uid" column="uid">
			<!-- 主键生成策略,默认系统策略,最好主动生成 -->
			<generator class="native" />
		</id>
		<!-- 建立类中的普通属性和表中的字段相对应 -->
		<property name="username" column="username" />
		<property name="password" column="password" />
	</class>
</hibernate-mapping>

2. 第二个配置文件是Hibernate的主配置文件>hibernate.cfg.xml , 代码如下:

<?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>
		<!-- 下面上必要有的配置 -->
		<!-- 配置连接MySQL数据库的基本参数 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_demo01</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">123</property>
		
		<!-- 配置Hibernate的方言 -->
		<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>
        
        <!-- 告诉Hibernate的核心配置文件加载哪个映射文件 -->
        <mapping resource="User.hbm.xml"/>   
	</session-factory>
</hibernate-configuration>

这两个配置文件的位置如下:
在这里插入图片描述
Hibernate运行时 , 会先去加载hibernate.cfg.xml文件再去根据>*.hbm.xml去生成映射关系。

差点还忘记一个实体类了,现在我们将实体类补上,代码如下:

/**
 * 实体类
 * @author JAVA
 *
 */
public class User {
	
	private Integer uid;
	private String username;
	private String password;
	public Integer getUid() {
		return uid;
	}
	public void setUid(Integer uid) {
		this.uid = uid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "User [uid=" + uid + ", username=" + username + ", password=" + password + "]";
	}

使用Hinbernate的API进行测试

配置好以上文件后 , 我们就可以使用Hibernate进行测试 , 测试代码如下:

	@Test
	public void helloHibernate() {
		//加载Hibernate的核心配置文件
		Configuration configuration = new Configuration().configure();
		
		 //如果在Hibernate的核心配置文件没有设置加载哪个映射文件,则可手动加载映射文件
//		configuration.addResource("/HibernateStudyDemo01/src/main/java/entity/Customer.hbm.xml");
		
		//创建sessionFactory对象,类似于JDBC中的连接池
		SessionFactory sessionFactory = configuration.buildSessionFactory();
		//创建SessionFactory获取到Session对象,类似于JDBC中的Connection
		Session session = sessionFactory.openSession();
		//手动开启事务(最好手动开启)
		Transaction transaction = session.beginTransaction();
		//编写代码
		User user = new User();
		user.setUsername("Hello Hibernate");
		user.setPassword("123");
		session.save(user);
		//提交事务
		transaction.commit();
		//释放资源
		session.close();
		sessionFactory.close();
	}

测试成功 , 查看数据库:
在这里插入图片描述
以上我们的第一个Hibernate程序顺利测试通过 , 下一章我会带大家了解到Hibernate的一些常用API

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值