hibernate

前言

hibernate是开源的轻量级框架
开源:获取免费源码
轻量级:jar包不存在依赖关系

一、hibernate入门和基本操作

1.orm思想

orm思想为对象关系映射*
1>让实体类和数据库表进行一一对应关系
实体类与数据库表对应
实体类属性和表里字段对应
2>不需要直接操作数据库表,而操作表对应实体类对象

2.配置实体类和数据库表一一对应关系<映射关系>

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

2.1创建xml格式的配置文件

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

2.2配置是xml格式,在配置文件中首先引入xml的dtd约束

在这里插入图片描述

2.3配置映射关系

<hibernate-mapping>
	<!-- 1 配置类和表对应 
	class标签
		name属性:实体类全路径
		table属性:数据库表名称-->
	<class name="cn.itcast.entity.User" table="t_user">
		<!-- 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>
		<property name="password" </property>
	</class>
</hibernate-mapping>

3.创建hibernate的核心配置文件

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

位置:必须在src下面
名称:必须hibernate.cfg.zml

3.2引入dtd约束

在这里插入图片描述

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

第一部分:配置数据库信息<必须的>

<property name="hibernate.connection.driver_class">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">123</property>

第二部分:配置Hibernate信息<可选的>
在这里插入图片描述
第三部分:把映射文件放到核心配置文件中

<mapping resource="cn/zzuli/entity/User.hbm.xml"/>

4.实体类操作

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

//到src下面找到配置文件hibernate.cfg.xml并封装成对象
Configuration cfg = new Configuration();
		cfg.configure();

第二步 创建SessionFactory对象

//读取hibernate核心配置文件内容,创建sessionFactory
//在过程中,根据映射关系,在配置数据库里面把表创建
		SessionFactory sessionFactory = cfg.buildSessionFactory();

第三步 使用SessionFactory创建session对象

Session session = sessionFactory.openSession();

第四步 开启事务

Transaction tx = session.beginTransaction();

第五步 写具体逻辑 crud操作

//添加操作
User user = new User();
user.setUsername("lhy");
user.setPassword("20");
session.save(user);

//根据id查询
//调用session里的get方法实现
User user=session.get(user.class,1);

//修改操作
//先查询,后修改
User user=session.get(user.class,2);
user.setUsername("lww");
session.update(user);

//删除操作
//先查询,后删除
User user=session.get(user.class,2);
user.delete(user);

第六步 提交事务

tx.commit();

第七步 关闭资源

session.close();
sessionFactory.close();

5.SessionFactory

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

<property name="hibernate.hbm1ddl.auto">update</property>

2>在hibernate操作中,一个项目一般创建一个sessionFactory对象
3>具体实现

static Configuration cfg=null;
static SessionFactory sessionFactory=null;
static{
	cfg=new Configuration();
	cfg.configure();
	sessionFactory=cfg.buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
	return sessionFactory;
}

hibernate概念和api使用

1.实体类编写规则

表示学生的分数,假如 int score;

  • 比如学生得了0分 ,int score = 0;
  • 如果表示学生没有参加考试,int score = 0;不能准确表示学生是否参加考试
    解决:使用包装类可以了, Integer score = 0,表示学生得了0分,
    表示学生没有参加考试,Integer score = null;

2.Hibernate主键生成策略

native:主键自增长
uuid:hibernate帮我们生成uuid值

<generator class="uuid"></generator>

3.实体类状态

三种
1>瞬时态:对象里面没有id值,对象与session没有关联

User u=new User();
u.setUsername("lhy");
u.setPassword("123");

2>持久态:对象里面有id值,对象与session关联

User user=session.get(user.class,1);

3>托管态:对象有id值,对象与session没有关联

User user=new User();
user.setUid(3);

saveOrUpdate方法:实现添加、实现修改
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值