Hibernate入门的一些笔记

Hibernate

MVC思想

1.model:模型

2.view:视图

3.controller:控制器

hibernate概述

什么是框架

使用框架之后,帮我们实现一部分功能,使用框架的好处就是,少些一部分代码实现功能

什么是hibernate框架

1.hibernate框架应用在javaee三成结构中的dao层

2.在dao层里面做对数据库crud操作,使用hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对jdbc进行封装,使用hibernate的好处就是,不需要写复杂的jdbc代码,不需要写sql实现。

什么是orm思想

1.hiber使用orm思想对数据库进行crud操作

2.在web阶段学的javabean,更正确的叫法是实体类

3.orm:Obejet Relational Mapping:对象关系映射

文字描述

1.让实体类和数据库一一对应关系,让实体类首先和数据库表对应,让实体类属性和数据库字段对应

2.不需要直接操作数据库表,而操作对应实体类对象

hibernate入门

搭建hibernate环境

第一步 导入hibernate的jar包

mysql驱动的jar包也要导入

第二步 创建实体类

使用hibernate的时候,不需要手动创建表,hibernate帮把表创建。

第三步 配置实体类和数据库表一一对应关系

使用配置文件实现映射关系

1.创建xml格式的配置文件

1.1 映射配置文件名称和位置没有固定要求

1.2 建议:在实体类所在包内创建,实体类名称hbm.xml

2.配置是xml格式,在配置文件中首先引入xml约束

2.1 学过约束dtd/schema/,在hibernate里面引入的约束时dtd约束

3.配置映射关系

<!-- 1 配置类和表对应

	class标签

	name属性:实体类全路径

	table属性:数据库表名称 -->

<class name="实体类全路径"	table="表名">

	<!-- 2 配置实体类id和表id对应

		hibernate要求实体类有一个属性唯一值

		hibernate要求表有字段作为唯一值 -->

	<!-- id标签

		name属性:实体类里面id属性名称

		column属性:生成的表字段名称-->

	<id name="uid" column='uid'

		<!-- 设置数据库表id增长策略

			native:生成表id值就是主键自动增长-->

		<generator class="native"></generator>

	</id>

	<!--配置其他属性和表字段对应

		name属性:实体类属性名称

		column属性:生成表字段名称-->

	<property name="username" column="username"></property>

</class>

第四步 创建hibernate核心配置文件

1 核心配置文件格式为xml,但是核心配置文件名称和位置是固定的

	位置:必须src下面

	名称:必须hibernate.cfg.xml

2 引入dtd约束

3 hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载

<property name="hibernate.connection,derverclass.com.mysql.jdbc.Driver"></property>

<property name="hibernate.connection.url">jdbc:mysql://数据库名</property>

<property name="hibernate.connection.username">root</property>

<property name="hibernate.connection.password">root</property>

hibernate实现操作步骤

第一步 加载hibernate核心配置文件

第二步 创建SessionFactory对象

第三步 使用SessionFactory创建Session对象

第四步 开启事务

第五步 写具体逻辑crud操作

第六步 提交事务

第七步 关闭资源

hibernate映射配置文件

1.映射配置文件名称和位置没有固定要求

2.映射配置文件中,标签name属性值写实体类相关内容

2.1 class标签name属性值是实体类全路径

2.2 id标签和property标签name属性值

3.id标签和property标签,column属性可以省略

3.1不写值和name属性值一样

4.property标签type属性,设置生成表字段的类型,自动对应类型。

hibernate核心API

configuration

1.代码

Configuration cfg = new Configuration();

(1)到src下面找到名称hibernate.cfg.xml配置文件,创建对象,把配置文件放到对象里面(加载核心配置文件)

SessionFactory

1.使用Configuration 对象创建SessionFactory对象

1.1创建SessionFactory过程中会做的事

根据核心配置文件中,有数据库配置,有映射文件部分,到数据库里面根据映射关系把表创建

2.创建SessionFactory过程中,这个过程特别耗费资源

	在hibernate操作中,建议一个项目一般创建一个SessionFactory

3.具体实现

	3.1 写工具类,写静态代码块实现

	静态代码块在类加载时候执行,执行一次。

	static Configuration cfg = null;

	static SessionFactory sessionFactory = null;

	//静态代码块实现

	static {//加载核心配置文件

		cfg = new Configuration();

		cfg.configure();

		sessionFactory = cfg.buildSessionFactory();

			}

	//提供方法返回sessionFactory

	public static SessionFactory getSessionFactory(){

		return sessionFactory;

	}

Session

1.session类似jdbc中connection

2.调用session里面不同的方法实现crud操作

2.1添加save方法

2.2修改update方法

2.3删除delete方法

2.4根据id查询get方法

3.session单线程对象

3.1session对象不能公用,只能自己使用

Transaction

1.事务对象

Tranction tx = session.beginTransaction();

2.事务提交和回滚方法

tx.commit();

tx.rollback();

3.事务概念

事务四个特性

	原子性/一致性/隔离性/持久性

hibernate注解配置

常用的HibernateAnnotation标签

@Entity

将一个JavaBean类声明为一个实体的数据库表映射类,最好实现序列化。此时,默认情况下,所有的类属性都会映射到数据库的持久性字段,若在类中添加另外属性,而非映射数据库,要用下面的transient来注解。

@Table(name =”preson_info“)

持久类映射的表,@Table是类一级的注解,定义在@Entity下,在实体bean映射表

@Id

注释可以表明那种属性是该类中的独特标识符(即相当于数据表的主键)

@Generated Value

定义自动增长的主键的生成策略

@Transient

将忽略这些字段和属性,不用持久化到数据库,适用于在当前的持久类中,某些属性不是用于映射到数据库,而是用于其他的业务逻辑需要。

Hibernate查询方式

1.对象导航查询

	根据id查询某个客户,再查询这个客户里面所有的联系人

 2.ID查询

	根据id查询某一条记录,返回对象

3.HQL查询

	Query对象,写hql语句实现查询

4.QBC查询

	Criteria对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值