华体会体育app
Mou Mou Jidian Generator
发电机维修 发电机回收
发电机出售 发电机租赁
客户统一服务热线

027-772789334
14048319309

4静音发电机
您的位置: 主页 > 产品中心 > 静音发电机 >
Java 最常见的 208 道面试题:第十二模块谜底:华体会体育app手机版

Java 最常见的 208 道面试题:第十二模块谜底:华体会体育app手机版

本文摘要:十二、Hibernate113. 为什么要使用 hibernate?对JDBC会见数据库的代码做了封装,大大简化了数据会见层繁琐的重复性代码。Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大水平的简化DAO层的编码事情hibernate使用Java反射机制,而不是字节码增强法式来实现透明性。 hibernate的性能很是好,因为它是个轻量级框架。映射的灵活性很精彩。 它支持种种关系数据库,从一对一到多对多的种种庞大关系。

华体会体育app

十二、Hibernate113. 为什么要使用 hibernate?对JDBC会见数据库的代码做了封装,大大简化了数据会见层繁琐的重复性代码。Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大水平的简化DAO层的编码事情hibernate使用Java反射机制,而不是字节码增强法式来实现透明性。

hibernate的性能很是好,因为它是个轻量级框架。映射的灵活性很精彩。

它支持种种关系数据库,从一对一到多对多的种种庞大关系。114. 什么是 ORM 框架?工具-关系映射(Object-Relational Mapping,简称ORM),面向工具的开发方法是当今企业级应用开发情况中的主流开发方法,关系数据库是企业级应用情况中永久存放数据的主流数据存储系统。工具和关系数据是业务实体的两种体现形式,业务实体在内存中体现为工具,在数据库中体现为关系数据。内存中的工具之间存在关联和继续关系,而在数据库中,关系数据无法直接表达多对多关联和继续关系。

因此,工具-关系映射(ORM)系统一般以中间件的形式存在,主要实现法式工具到关系数据库数据的映射。115. hibernate 中如何在控制台检察打印的 sql 语句?参考:blog.csdn.net/Randy_Wang_/article/details/79460306116. hibernate 有几种查询方式?hql查询sql查询条件查询hql查询,sql查询,条件查询HQL: Hibernate Query Language. 面向工具的写法:Query query = session.createQuery("from Customer where name = ?");query.setParameter(0, "苍老师");Query.list();QBC: Query By Criteria.(条件查询)Criteria criteria = session.createCriteria(Customer.class);criteria.add(Restrictions.eq("name", "花姐"));List<Customer> list = criteria.list();SQL:SQLQuery query = session.createSQLQuery("select * from customer");List<Object[]> list = query.list();SQLQuery query = session.createSQLQuery("select * from customer");query.addEntity(Customer.class);List<Customer> list = query.list();Hql: 详细分类1、 属性查询 2、 参数查询、命名参数查询 3、 关联查询 4、 分页查询 5、 统计函数HQL和SQL的区别HQL是面向工具查询操作的,SQL是结构化查询语言 是面向数据库表结构的117. hibernate 实体类可以被界说为 final 吗?可以将Hibernate的实体类界说为final类,但这种做法并欠好。

因为Hibernate会使用署理模式在延迟关联的情况下提高性能,如果你把实体类界说成final类之后,因为 Java不允许对final类举行扩展,所以Hibernate就无法再使用署理了,如此一来就限制了使用可以提升性能的手段。不外,如果你的持久化类实现了一个接口而且在该接口中声明晰所有界说于实体类中的所有public的方法轮到话,你就能够制止泛起前面所说的倒霉结果。118. 在 hibernate 中使用 Integer 和 int 做映射有什么区别?在Hibernate中,如果将OID界说为Integer类型,那么Hibernate就可以凭据其值是否为null而判断一个工具是否是暂时的,如果将OID界说为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0。

119. hibernate 是如何事情的?hibernate事情原理:通过Configuration config = new Configuration().configure();//读取并剖析hibernate.cfg.xml设置文件由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并剖析映射信息通过SessionFactory sf = config.buildSessionFactory();//建立SessionFactorySession session = sf.openSession();//打开SesssionTransaction tx = session.beginTransaction();//建立并启动事务Transationpersistent operate操作数据,持久化操作tx.commit();//提交事务关闭Session关闭SesstionFactory120. get()和 load()的区别?load() 没有使用工具的其他属性的时候,没有SQL 延迟加载get() 没有使用工具的其他属性的时候,也生成了SQL 立刻加载121. 说一下 hibernate 的缓存机制?Hibernate中的缓存分为一级缓存和二级缓存。一级缓存就是 Session 级此外缓存,在事务规模内有效是,内置的不能被卸载。二级缓存是 SesionFactory级此外缓存,从应用启动到应用竣事有效。

是可选的,默认没有二级缓存,需要手动开启。生存数据库后,缓存在内存中生存一份,如果更新了数据库就要同步更新。什么样的数据适合存放到第二级缓存中?很少被修改的数据 帖子的最后回复时间经常被查询的数据 电商的所在不是很重要的数据,允许泛起偶然并发的数据不会被并发会见的数据常量数据扩展:hibernate的二级缓存默认是不支持漫衍式缓存的。

使用 memcahe,redis等中央缓存来取代二级缓存。122. hibernate 工具有哪些状态?hibernate里工具有三种状态:Transient(瞬时):工具刚new出来,还没设id,设了其他值。

Persistent(持久):挪用了save()、saveOrUpdate(),就酿成Persistent,有id。Detached(脱管):当session close()完之后,酿成Detached。123. 在 hibernate 中 getCurrentSession 和 openSession 的区别是什么?openSession 从字面上可以看得出来,是打开一个新的session工具,而且每次使用都是打开一个新的session,如果一连使用多次,则获得的session不是同一个工具,而且使用完需要挪用close方法关闭session。getCurrentSession ,从字面上可以看得出来,是获取当前上下文一个session工具,当第一次使用此方法时,会自动发生一个session工具,而且一连使用多次时,获得的session都是同一个工具,这就是与openSession的区别之一,简朴而言,getCurrentSession 就是:如果有已经使用的,用旧的,如果没有,建新的。

注意:在实际开发中,往往使用getCurrentSession多,因为一般是处置惩罚同一个事务(即是使用一个数据库的情况),所以在一般情况下比力少使用openSession或者说openSession是比力老旧的一套接口了。124. hibernate 实体类必须要有无参结构函数吗?为什么?必须,因为hibernate框架会挪用这个默认结构方法来结构实例工具,即Class类的newInstance方法,这个方法就是通过挪用默认结构方法来建立实例工具的。另外再提醒一点,如果你没有提供任何结构方法,虚拟时机自动提供默认结构方法(无参结构器),可是如果你提供了其他有参数的结构方法的话,虚拟机就不再为你提供默认结构方法,这时必须手动把无参结构器写在代码里,否则new Xxxx()是会报错的,所以默认的结构方法不是必须的,只在有多个结构方法时才是必须的,这里“必须”指的是“必须手动写出来”。


本文关键词:Java,最,常见,的,华体会体育app,208,道面,试题,第十二,模块

本文来源:华体会体育app-www.yuhongfan.com

Copyright © 2002-2022 www.yuhongfan.com. 华体会体育app科技 版权所有  ICP备案:ICP备38879180号-1