Hibernate进阶

1、hibernate.cfg.xml常用配置

注意:hibernate的前缀可以省略,即:hibernate.dialect等同于dialect


2、session简介


不建议直接使用Jdbc的connection操作数据库,而是通过使用session操作数据库。
session可以理解为操作数据库的对象。
session与connection,是多对一的关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用。
把对象保存在刮泥数据库中需呀调用session的各种方法,
如:save(), update(), delete(), createQuery()等。

3、transaction 简介

Hibernate对数据的操作都是封装在事务当中的,并且默认是非自动提交的方式。
所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中

如果你想让Hibernate像jdbc那样自动提交事务,必须调用session对象的doWork()方法,获得jdbc的connection后,
设置其为自动提交事务模式。最后还需要flush()(注意:通常并不推荐这样做

public void testSaveUser()
	{
		//生成用户对象
		User user=new User(1,"txr","123");
		session.doWork(new Work(){

			@Override
			public void execute(Connection arg0) throws SQLException {
				// TODO Auto-generated method stub
				arg0.setAutoCommit(true);
			}
			
		});
		session.save(user);//保存对象
		session.flush();//必须添加flush才能添加进入数据库
	}

4、session详解

如何获得session对象?

1)、opensession
2)、getCurrentSession
如果使用getCurrentSession需要在hibernate.cfg.xml文件中进行配置:
如果是本地事务(jdbc事务)
<property name="hibernate.current_session_context_class">thread</propertyname>
如果是全局事务(jta事务)
<property name = "hibernate.current_session_context_class">jta</propertyname>

     openSession与getCurrentSession的区别


1、getCurrentSession在事务提交或者回滚之后会自动关闭,而openSession需要你手动关闭。
如果使用openSession而没有手动关闭,多次之后会导致链接池溢出。
2、openSession每次创建新的session对象,getCurrentSession使用现有的session对象。

5、对象关系映射(hbm)常用配置

schema表示设置模式的名字
catalog表示设置目录的名字
<class
name="ClassName" //对象关系映射映射的是哪个类
table="tableName" //把这个类映射成数据库的哪张表
batch-size="N"   //抓取策略
where="condition" //根据条件来抓取,where代表条件
entity-name="EntityName" //支持同一个类映射成多张表
/>

<id   //表示主键
name="propertyName" //表示要映射成为哪个属性
type="typename" //type表示数据类型
column="cloumn_name" //映射成表中字段的名称
length="length"
<generator class= "generatorClass"/>//主键生成策略
</id>
主键生成策略


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Spring Boot的高级进阶,以下是一些建议和主题: 1. 微服务架构:学习如何将应用程序拆分成多个小型、可独立部署的微服务,并使用Spring Cloud、Netflix OSS等技术栈来实现服务发现、负载均衡、断路器等功能。 2. 高性能优化:深入了解Spring Boot的底层原理,包括自动配置、Bean的生命周期、依赖注入等,并学习如何通过调整配置、使用缓存、异步处理等技术来提高应用程序的性能。 3. 安全性和认证授权:掌握Spring Security框架,学习如何使用它来实现身份验证、权限控制、跨站点请求伪造(CSRF)防护等功能。 4. 数据访问和持久化:学习使用Spring Data JPA、Hibernate或MyBatis等技术来简化数据访问层的开发,了解如何优化数据库查询、实现数据缓存等。 5. 高可用和容错:学习如何使用分布式缓存、消息队列等技术来实现高可用性和容错性,以确保应用程序在面对故障和负载增加时仍然能够正常工作。 6. 监控和日志:学习如何使用Spring Boot Actuator来监控应用程序的性能指标、健康状况等,使用ELK(Elasticsearch、Logstash和Kibana)等工具来集中管理和分析日志。 7. 部署和扩展:了解如何使用Docker容器化应用程序,并学习如何使用容器编排工具(如Kubernetes)来部署、扩展和管理Spring Boot应用程序。 除了以上主题,还可以深入学习Spring Boot的其他特性和相关技术,如Spring Boot Starter、Actuator、WebFlux等,以及Spring Cloud全家桶中的各个组件。不断学习并实践这些知识,将能够更好地开发和部署高性能、可靠的Spring Boot应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值