Hibernate复习题1含答案
Hibernate考试试题(题库)
Hibernate考试试题(题库)Hibernate考试试题(题库)1、 在Hibernate中,下列说法正确的有( )。
【选三项】A.Hibernate是⼀个开放源代码的对象关系映射框架B.Hibernate对JDBC进⾏了轻量级的对象封装C.Hibernate可以⼤⼤减少操作数据库的⼯作量D.Hibernate提供了数据查询机制,但没有提供恢复机制2、 关于Hibernate,下列说法错误的是( )。
A.Hibernate是⼀个对象-关系映射⼯具B.在MVC模式中,Hibernate属于控制层C.Hibernate在JDBC的⽅式上进⾏封装,以简化JDBC⽅式繁琐的编码⼯作D.在Hibernate中,可以通过xml格式的配置⽂件保存对象-关系的映射信息3、 在Hibernate中,下列关于SessionFactory说法正确的有( )。
【选两项】A.它是线程安全的B.它不是线程安全的C.它是轻量级的D.⼀个SessionFactory实例对应⼀个数据存储源4、 在Hibernate中,下列关于Session说法正确的有( )。
【选三项】A.它是线程安全的B.它不是线程安全的C.它是轻量级的D.Session也被称为持久化管理器,它提供了和持久化相关的操作5、 在Hibernate中,下列关于Transaction说法正确的有( )。
【选三项】A.事务Transaction为应⽤程序指定以原⼦操作单元为范围的对象B.在对数据库进⾏增加、修改和删除操作时⼀定要加上TransactionC.在对数据库进⾏查询操作时⼀定要加上TransactionD.获得Transaction的⽅法:Transaction tr = session.beginTransaction();6、 在Hibernate中,如果数据库是MySql或者SQLServer,则generator属性值不可以使⽤( )。
A.hiloB.nativeC.sequenceD.indentity7、 在Hibernate中,如果数据库是Oracle或者DB2,则generator属性值不可以使⽤( )。
软件开发框架(J2EE)Hibernate概述习题与答案
一、多选题1.在Hibernate 主配置文件(hibernate.cfg.xml)中,以下哪个元素()为它的根元素。
A.<hibernate-configuration>元素B.<session-factory>元素C.<property>元素D.<mapping>元素E.<hibernate-mapping>元素2.在Hibernate 主配置文件(hibernate.cfg.xml)中,是通过哪个元素()来配置映射文件的。
A.<hibernate-configuration>元素B.<session-factory>元素C.<property>元素D.<mapping>元素E.<hibernate-mapping>元素3.下面关于Hibernate 的映射文件说法正确的有哪些()。
A.Hibernate 是以xml 格式的文件来指定对象与关系数据之间的映射B.在hibernate.cfg.xml文件中可以配置<mapping>元素的resource属性来指定映射文件C.配置映射文件时,需要遵循它对应的DTD 文件格式D.在映射文件中,<class>元素的<id>子元素只能出现一次E.<id>元素的<generator>子元素用来设定标识符生成器4.在Hibernate 的映射文件中,<id>元素的<generator>子元素用来设定标识符生成器,以下对常用的标识符生成器的用法说法正确的是()。
A.increment:适用于代理主键。
用于为long, short 或者int 类型生成唯一标识B.identity:适用于代理主键。
由底层数据库生成标识符C.sequence:适用于代理主键。
Hibernate 根据底层数据库的序列来生成标识符D.hilo:使用一个高/低位算法高效的生成long、short 或者int 类型的标识符E.seqhilo:使用一个高/低位算法来高效的生成long、short 或者int 类型的标识符,给定一个数据库序列(sequence)的名字5.Hibernate 采用xml 文件来配置对象—关系映射有哪些好处()。
Hibernate内部测试-笔试试卷
《使用Hibernate开发租房系统》内部测试-笔试试卷一、选择题(共25题,每题4分,满分100分)1.下面不属于持久化的是()。
A.把对象转换为字符串的形式通过网络传输,在另一端接收到这个字符串后能把对象还原出来B.把程序数据从数据库中读出来C.从XML配置文件中读取程序的配置信息D.把程序数据保存为文件2.下面()不属于关系—对象映射的映射信息。
A.程序包名到数据库库名的映射B.程序类名到数据库表名的映射C.实体属性名到数据库表字段的映射D.实体属性类型到数据库表字段类型的映射3.下面()不是Hibernate 映射文件中包含的内容。
(选两项)A.数据库连接信息B.Hibernate 属性参数C.主键生成策略D.属性数据类型4.下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是()。
public static void main(String[] args) {SessionFactory sf =new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Medal medal = new Medal();medal.setOwner("Shen Baozhi");medal.setSport("Table Tennis-Women's Singles");medal.setType("Gold Medal");session.save(user);session.close();}A.配置文件配置有误B.没有在配置文件中包含对映射文件的声明C.映射文件配置有误D.没有开启事务5.下列属于多对一关系的是()。
(选两项)A.书和作者B.手机和生产厂家C.用户和发布的出租信息D.士兵和班长6.下面是某系统中的两个实体类,依此可以得知()。
(完整word版)J2EE考试复习试题_struts2_spring_hibernate(答案整合完毕)
一、填空:1.Struts 2框架由__webWork______和___xWork_框架发展而来。
XWork是一个标准的Command模式实现,并且完全从web层脱离出来。
Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Navigation Language),IoC(Inversion of Control倒置控制)容器等。
其目的是:创建一个泛化的、可重用且可扩展的命令模式框架,而不是一个特定在某个领域使用的框架。
其特点是:1、基于一个简单的接口就可以进行灵活且可自定义的配置;2、核心命令模式框架可以通过定制和扩展拦截器来适应任何请求/响应环境;3、整个框架通过类型转换和使用OGNL的action属性验证来构建;4、包含一个基于运行时Attribute和验证拦截器的强大的验证框架。
Xwork和WebWork的关系WebWork2 被构建在XWork之上,以XWork为基础。
通过使用XWork的命令模式框架和拦截器框架,提供了一个支持Web功能、能快速构建Web应用的命令模式框架。
xwork和Webwork的交互图2.Struts 2以__过滤器__为核心,采用__拦截器__的机制来处理用户的请求。
3.构建Struts 2应用的最基础的几个类库是_struts2-core__、_commons-logging_、_xwork-core_、__freamarker___以及_ognl_。
4.Struts 2中的控制器类是一个普通的_POJO_。
5.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为___ <taglib><taglib-uri>/struts-tags</taglib-uri><taglib-location>/WEB-INF/lib/struts2-core-2.0.11.1.jar</taglib-location></taglib> ________。
j2ee期末考试复习资料
一、填空题1、Ajax中,如需将请求发送到服务器,我们使用XMLHttpRequest 对象的(open)和(send)方法。
2、Ajax中,XMLHttpRequest 对象如果要用于AJAX 的话,其open() 方法的async 参数必须设置为(true)。
3、Ajax中,如需获得来自服务器的响应,使用XMLHttpRequest 对象的(responseText )或(responseXML )属性。
4、在利用<textarea>标签建立FCKeditor对象时,其传递过来的参数必须是<textarea>标签的(name)属性值,然后通过(ReplaceTextarea)方法替换<textarea>标签。
5、FCKeditor的主配置文件为(fckconfig.js)。
6、FCKeditor中使用属性(AutoDetectLanguage)配置是否自动检查语言。
7、FCKeditor中修改FCKConfig类的(ToolBarSets)属性来实现自定义工具栏。
8、FCKeditor中,要实现上传文件的功能,必须引入(commons-fileupload.jar)、(commons-io.jar)、(slf4j-api.jar)、(fckeditor-java-core.jar)和(slf4j-simple.jar)五个jar 包。
9、要使用客户端表单验证框架JSValidation,需要将(validation-framework.js)、(validation-config.dtd)和(validation-config.xml)加入到web工程的WebRoot目录下。
10、客户端表单验证框架JSValidation的配置文件中,(<form>)是虚拟表单元素,(<field>)是虚拟表单域元素,(<depend>)是检验条件元素。
Hibernate复习题1含答案要点
美斯坦福在线考试系统荆州理工G3 Hibernate科目: SCCEG3Hibernate总分: 100分时间: 60分钟一、单选题(共45题,每题2分,说明:选择一项正确的答案)1、下面关于Hibernate的说法,错误的是()A、Hibernate是一个“对象-关系映射”的实现B、Hibernate是一种数据持久化技术C、Hibernate是JDBC的替代技术他是对JDBC做了轻量级的对象封装D、使用Hibernate可以简化持久化层的编码参考答案: C2、在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()A、配置客户和订单关联的cascade属性为save-updateB、配置客户和订单关联的cascade属性为allC、设置多对一关联的inverse属性为trueD、设置多对一关联的inverse属性为false参考答案: B详解3、下面一对多关联的配置中,存在哪些错误()<set name="orders" inverse="false" cascade="true"><one-to-many class="com.x.entity.Order"column="customer_id" /></set>A、inverse属性不可以设置为falseB、cascade属性不可设置为trueC、class="com.x.entity.Order"应为type="com.x.entity.Order"D、column属性不可再<one-to-many>节点内设置参考答案: B4、下面创建Criteria对象的语句中正确的是()A、Criteria c = query.createCriteria();B、Criteria c = query.addCriteria();C、Criteria c = session.createCriteria();D、Criteria c = session.createCriteria(User.class);参考答案: D5、下面关于Hibernate映射文件配置中dynamic-update属性说法正确的是()详解A、动态的修改,如果为true,只改变有改变的属性B、动态的修改,如果为true,只改变没有改变过的属性C、动态的修改,如果为true,改变所有的属性D、以上说法都错参考答案: A6、下面关系Hibernate对象的状态说话正确的是()临时持久化游离A、Hibernat的对象只有一种状态B、Hibernat的对象有2种状态C、Hibernat的对象有3种状态D、Hibernat的对象有4种状态参考答案: C7、Hibernate对象从瞬时到持久状态转换的方式有()。
J2EE期末复习(含答案)
1、ORM 有什么好处?AA).能进行关系对象的映射B).具有控制器功能C).能在服务器端保存客户端状态D).向DTO传递数据2、在使用property标签时,如果要显示标签的代码,需要设置下面哪个属性的属性值? CA).defaultB).valueC).escapeD).id3、以下哪一种检索策略利用了外连结查询?CA).立即检索B).延迟检索C).迫切左外连结检索D).迫切右外连结检索4、如果你不能确定你要寻找的对象的持久化标识符,那么你需要使用查询,使用Session 的什么方法? AA).createQuery()B).query()C).queryAll()D).queryObject()5、HQL查询语句from Cat as cat,不仅仅返回Cat的实例,而且还返回____的实例。
BA).Cat 父类B).Cat 子类C).Cat 实现接口D).Cat 兄弟类6、下面哪些子句不支持算数表达式?CA).compute by 和order byB).compute by 和insert byC).order by 和group byD).insert by 和group by7、使用Hibernate 的QBC 查询,要使用SQL 中的类似select count(*) from tablename 方法求出记录数,必须使用哪一个类?BA).RestrictionsB).ProjectionsC).CriteriaD).Criteron8、Struts2中默认的主题是哪一种?BA).simpleB).xhtmlC).css_xhtmlD).ajax9、在Hibernate 中,关于数据库的方言,下面哪个说法是正确的?DA).可以不写数据库方言B).数据库方言没有作用,可以随便写C).有通用的数据库方言可以使用D).数据方言对应于每个数据库,主要用于产生SQL 语句数据方言对应于每个数据库10、在JEE企业级开发中,SSH框架中Struts主要是完成Web的MVC中的哪个角色?AA).C(控制器)和V(视图)B).M (模型)和C(控制器)C).只有C(控制器)D).V(视图)和M(模型)11、在Struts2的包配置中,下面哪个属性是必须指定的?CA).namespaceB).extendsC).nameD).abstract12、通过实现下面哪个接口,可以很容易地实现一个拦截器类的编写?BA).ActionB).InterceptorC).AbstractInterceptorD).MethodInterceptor13、Action运行期间所有用到的数据都保存在下面哪个对象中?DA).RequestB).SessionC).ResponseD).ActionContext14、在使用SSH进行JEE企业级开发中,通常把模板文件放置在/WEB-INF目录下的原因是?AA).因为模板文件不能直接访问,为了防止用户直接访问模板文件,所以放在/WEB-INF目录下,让这些文件直接访问不到。
J2EE期末复习(含答案)
1、ORM 有什么好处AA).能进行关系对象的映射B).具有控制器功能C).能在服务器端保存客户端状态D).向DTO传递数据2、在使用property标签时,如果要显示标签的代码,需要设置下面哪个属性的属性值 CA).defaultB).valueC).escapeD).id3、以下哪一种检索策略利用了外连结查询CA).立即检索B).延迟检索C).迫切左外连结检索D).迫切右外连结检索4、如果你不能确定你要寻找的对象的持久化标识符,那么你需要使用查询,使用Session 的什么方法AA).createQuery()B).query()C).queryAll()D).queryObject()5、HQL查询语句from Cat as cat,不仅仅返回Cat的实例,而且还返回____的实例。
BA).Cat 父类B).Cat 子类C).Cat 实现接口D).Cat 兄弟类6、下面哪些子句不支持算数表达式CA).compute by 和order byB).compute by 和insert byC).order by 和group byD).insert by 和group by7、使用Hibernate 的QBC 查询,要使用SQL 中的类似select count(*) from tablename 方法求出记录数,必须使用哪一个类BA).RestrictionsB).ProjectionsC).CriteriaD).Criteron8、Struts2中默认的主题是哪一种BA).simpleB).xhtmlC).css_xhtmlD).ajax9、在Hibernate 中,关于数据库的方言,下面哪个说法是正确的DA).可以不写数据库方言B).数据库方言没有作用,可以随便写C).有通用的数据库方言可以使用D).数据方言对应于每个数据库,主要用于产生SQL 语句数据方言对应于每个数据库10、在JEE企业级开发中,SSH框架中Struts主要是完成Web的MVC中的哪个角色AA).C(控制器)和V(视图)B).M (模型)和C(控制器)C).只有C(控制器)D).V(视图)和M(模型)11、在Struts2的包配置中,下面哪个属性是必须指定的CA).namespaceB).extendsC).nameD).abstract12、通过实现下面哪个接口,可以很容易地实现一个拦截器类的编写BA).ActionB).InterceptorC).AbstractInterceptorD).MethodInterceptor13、Action运行期间所有用到的数据都保存在下面哪个对象中DA).RequestB).SessionC).ResponseD).ActionContext14、在使用SSH进行JEE企业级开发中,通常把模板文件放置在/WEB-INF目录下的原因是AA).因为模板文件不能直接访问,为了防止用户直接访问模板文件,所以放在/WEB-INF目录下,让这些文件直接访问不到。
hibernate复习题1
hibernate复习题11、名词解释:1简答:ORM,IOC,AOP,HQL分别是什么单词的简写,分别的含义是什么?进行解释。
(20分)一、ORM:对象关系映射(Object/Relation Mapping)提供了概念性的、易于理解的模型化数据的方法。
描述不同对象间关系的一个简单而直接的方式。
ORM还提供了灵活性。
ORM方法论基于三个核心原则:1、简单:以最基本的形式建模数据。
2、传达性:数据库结构被任何人都能理解的语言文档化。
3、精确性:基于数据模型创建正确标准化了的结构。
二、IOC::控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。
IOC的基本概念是:不创建对象,但是描述创建它们的方式。
在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。
容器负责将这些联系在一起。
控制反转一般分为两种类型,依赖注入和依赖查找。
依赖注入应用比较广泛。
三、AOP:面向切面的编程(Aspect oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
AOP是OOP的延续。
主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。
四、HQL:(Hibernate Query Language)官方推荐的标准查询方式,HQL查询在涵盖Criteria 查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。
HQL主要用法有1、实体查询2、实体的更新和删除3、属性查询4、分组与排序5、参数绑定2论述题(20分)2、简答:hibernate是什么?spring是什么?一、Hiberbnate:1、Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
精华Hibernate面试题及答案大集合
精华-Hibernate面试题及答案大集合1。
一般情况下,关系数据模型与对象模型之间有哪些匹配关系(多选)A)表对应类B)记录对应对象C)表的字段对应类的属性D)表之间的参考关系对应类之间的依赖关系2.以下关于SessionFactory的说法哪些正确?(多选)A)对于每个数据库事务,应该创建一个SessionFactory对象B)一个SessionFactory 对象对应一个数据库存储源.C)SessionFactory是重量级的对象,不应该随意创建。
如果系统中只有一个数据库存储源,只需要创建一个。
D)SessionFactory的load()方法用于加载持久化对象3.Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer。
hbm。
xml文件中,用哪个元素映射orders属性?A) B) C) D)<:property>4.元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)A)noneB)saveC)deleteD)save—update5.以下哪些属于Session的方法?A)load()B)save()C)delete()D)update()E)open()F)close()6.以下程序的打印结果是什么?(单选)1.tx = session。
beginTransaction();2.Customer c1=(Customer)session。
load(Customer。
class,new Long(1));3.Customer c2=(Customer)session。
load(Customer.class,new Long(1));4.System.out.println(c1==c2);5.tx。
commit();6.session。
close();A)运行出错,抛出异常B)打印falseC)打印true7。
hibernate面试题汇总V1
hibernate面试题汇总V1一、Strut2二、1、Hibernate工作原理及为什么要用?2、Hibernate是如何延迟加载openSeionInView怎么用?3、说下Hibernate的缓存机制缓存的介质一般是内存,所以读写速度很快。
但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。
缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓存数据的生命周期。
Hibernate的缓存包括Seion的缓存和SeionFactory的缓存,其中SeionFactory的缓存又可以分为两类:内置缓存和外置缓存。
Seion的缓存是内置的,不能被卸载,也被称为Hibernate的第一级缓存。
Seion的缓存是指Seion的一些集合属性包含的数据。
SeionFactory的内置缓存中存放了映射元数据和预定义SQL语句,映射元数据是映射文件中数据的拷贝,而预定义SQL语句是在Hibernate初始化阶段根据映射元数据推导出来,SeionFactory的内置缓存是只读的,应用程序不能修改缓存中的映射元数据和预定义SQL语句,因此SeionFactory不需要进行内置缓存与映射文件的同步。
SeionFactory的外置缓存是一个可配置的插件。
在默认情况下,SeionFactory不会启用这个插件。
外置缓存的数据是数据库数据的拷贝,外置缓存的介质可以是内存或者硬盘。
SeionFactory的外置缓存也被称为Hibernate的第二级缓存。
Hibernate的这两级缓存都位于持久化层,存放的都是数据库数据的拷贝,那么它们之间的区别是什么呢?为了理解二者的区别,需要深入理解持久化层的缓存的两个特性:缓存的范围和缓存的并发访问策略。
缓存的范围决定了缓存的生命周期以及可以被谁访问。
缓存的范围分为三类。
1事务范围:缓存只能被当前事务访问。
缓存的生命周期依赖于事务的生命周期,当事务结束时,缓存也就结束生命周期。
hibernate面试题及答案
hibernate面试题及答案hibernate面试题及答案求职应聘,面试技巧的预备是必不行少的环节。
快来学习hibernate面试题及答案啦,增加面试通过率,阳光网我带你一起学习。
hibernate面试题及答案(一)一. Hibernate工作使用步骤?1. 读取并解析配置文件2. 读取并解析映射信息,创建SessionFactory3. 打开Sesssion4. 创建事务Transation5. 长期化操作6. 提交事务7. 关闭Session8. 关闭SesstionFactory二.Hibernate的查询方式有几种?(1)导航对象图检索方式。
依据已经加载的对象,导航到其他对象。
(2)OID查询方式。
依据对象的OID来查询对象。
Session的get()和load()方法。
(3)HQL查询方式。
HQL是面对对象的查询语言,session的find()方法用于执行HQL查询语句。
可以利用Query接口。
Query query = session.createQuery("from Customer as c where =: customerName');query.setString("customerName','张三'); List resultList = query.list();(4)QBC查询方式。
这种API封装了基于字符串形式的查询语句。
Criteria criteria = session.createCriteria(User.class); Criterion criterion1 = Expession.like("name','T%');Criterion criterion2 = Expession.eq(age,new Integer(30));criteria = criteria.add(criterion1);criteria = criteria.add(criterion2);List resultList = criteria.list();这种查询方式使用的较少,主要是在查询中需要用户输入一系列的查询条件,假如接受HQL查询代码会比较烦。
Hibernate复习题1含答案
美斯坦福在线考试系统荆州理工G3 Hibernate科目: SCCEG3Hibernate总分: 100分时间: 60分钟一、单选题(共45题,每题2分,说明:选择一项正确的答案)1、下面关于Hibernate的说法,错误的是()A、Hibernate是一个“对象-关系映射”的实现B、Hibernate是一种数据持久化技术C、Hibernate是JDBC的替代技术他是对JDBC做了轻量级的对象封装D、使用Hibernate可以简化持久化层的编码参考答案: C2、在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()A、配置客户和订单关联的cascade属性为save-updateB、配置客户和订单关联的cascade属性为allC、设置多对一关联的inverse属性为trueD、设置多对一关联的inverse属性为false参考答案: B详解3、下面一对多关联的配置中,存在哪些错误()<set name="orders" inverse="false" cascade="true"><one-to-many class="com.x.entity.Order"column="customer_id" /></set>A、inverse属性不可以设置为falseB、cascade属性不可设置为trueC、class="com.x.entity.Order"应为type="com.x.entity.Order"D、column属性不可再<one-to-many>节点内设置参考答案: B4、下面创建Criteria对象的语句中正确的是()A、Criteria c = query.createCriteria();B、Criteria c = query.addCriteria();C、Criteria c = session.createCriteria();D、Criteria c = session.createCriteria(User.class);参考答案: D5、下面关于Hibernate映射文件配置中dynamic-update属性说法正确的是()详解A、动态的修改,如果为true,只改变有改变的属性B、动态的修改,如果为true,只改变没有改变过的属性C、动态的修改,如果为true,改变所有的属性D、以上说法都错参考答案: A6、下面关系Hibernate对象的状态说话正确的是()临时持久化游离A、Hibernat的对象只有一种状态B、Hibernat的对象有2种状态C、Hibernat的对象有3种状态D、Hibernat的对象有4种状态参考答案: C7、Hibernate对象从瞬时到持久状态转换的方式有()。
Hibernate框架技术习题
一、笔试部分(每题10分,共5×12分=60分)1、如何理解ORM和Hibernate的持久化对象?2、如何理解Hibernate的Configuration、SessionFactory、Session对象?Configuration: (1)当创建一个SessionFactory的时候,Configuration实例允许应用程序使用指定的资源文件和映射文件,通常一个应用程序将创建唯一的Configuration,创建一个唯一的SessionFactory,接着创建客户端请求服务的线程所需要的Session实例。
(2)只被当做初始化一次,Sessionfactory不可改变,不能保留任何信息。
(3)其中该对象里有个方法叫buildSessionFactory(),作用:在这个Configuration对象里使用资源文件和映射文件,因此改变这个Configuration后,创建的SessionFactory将不受影响。
Session:是在java应用程序和Hibernate之间运行的主要接口。
主要Session的方法是为映射的实体类对象提供创建,读,删操作。
一个实例可能存在三种状态:A:transient(短暂态):没有进行持久化,也没连接任何Session。
B:persistent(持久态):连接了唯一的Session。
C:detached(释放态):持久性过了,没有与任何Session关联。
SessionFactory:它的主要作用就是创建Session实例,通常一个应用程序有一个唯一的SessionFactory实例和从这个SessionFactory里包含客户端请求服务所需要的Session。
一个SessionFactory的内部状态时不可以改变的只要它被创建,这个内部状态就被决定了,这种内部状态包含了所有的对象映射关系的元数据3、试绘出Hibernate的体系结构图并加以说明。
Hibernate考试题1
学生选课系统
该系统需要建立登录表、学生表、专业表、课程表,以及学生课程表即连接表。
学生登录系统后,可以查看、修改个人信息,查看个人选课情况,选定课程及退选课程。
合格要求:
登录成功后进入主界面
单击【查询个人信息】超链接,可以查看当前用户的个人信息
良好等级:
单击【个人选课情况】超链接,可以列举出当前用户的个人选课情况,
单击表格右边的【退选】超链接就可退选该课程。
单击【所有课程信息】超链接,可显示所有课程的信息,
优秀等级:
要求选课的课程学分不能超过20个学分并且课程不能超过5门,退选次数不能超过3次。
对已经选修的课程不能重复选择。
精华-Hibernate面试题-答案大集合
精华-Hibernate面试题-答案大集合参考答案:1.A B C2.B C3.A B4.D5.A B C D F6.C7.B8.A C D E9.D10.F11.C12.C13.B CHibernate工作原理及为什么要用?原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion4.创建事务Transation5.持久化操作,解析映射文件,生成对应的sql语句6.提交事务7.关闭Session8.关闭SesstionFactory为什么要用:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。
他很大程度的简化DAO层的编码工作3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4. hibernate的性能非常好,因为它是个轻量级框架。
映射的灵活性很出色。
它支持各种关系数据库,从一对一到多对多的各种复杂关系。
2.Hibernate是如何延迟加载?1. Hibernate延迟加载实现:a)实体对象b)集合(Collection)当Hibernate在查询数据的时候,数据并没有存在内存中,当程序真正对数据的操作时,发出sql获取对象的属性,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。
3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)类与类之间的关系主要体现在表与表之间的关系进行操作,它们都是对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、4.说下Hibernate的缓存机制1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事务级缓存2. 二级缓存:第三方缓存的实现条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非关键数据5.Hibernate的查询方式Sql、Criteria,object comptositionHql:1、属性查询2、参数查询、命名参数查询3、关联查询4、分页查询5、统计函数6.如何优化Hibernate?1.使用双向一对多关联,不使用单向一对多2.灵活使用单向一对多关联3.不用一对一,用多对一取代4.配置对象缓存,不使用集合缓存,如果使用了集合缓存,集合里面的对象也必须缓存5.组合关系集合使用bag,多对多集合使用set6.表字段要少,表关联不要怕多,有二级缓存撑腰。
CBD中心hibernate笔试题及答案
CBD中⼼hibernate笔试题及答案CBD 中⼼hibernate笔试题及答案(1)⼀般情况下,关系数据模型与对象模型之间有哪些匹配关系(多选)A)表对应类B)记录对应对象C)表的字段对应类的属性D)表之间的参考关系对应类之间的依赖关系(2)以下关于SessionFactory的说法哪些正确?(多选)A)对于每个数据库事务,应该创建⼀个Sess ionFac tory对象B)⼀个Sess ionFac tory对象对应⼀个数据库存储源。
C)SessionFactory是重量级的对象,不应该随意创建。
如果系统中只有⼀个数据库存储源,只需要创建⼀个。
D)Sess ionFac tory的load()⽅法⽤于加载持久化对象(3)C ustomer类中有⼀个Set类型的orders属性,⽤来存放O rder订单对象,在C us tomer.hbm.xml⽂件中,⽤哪个元素映射orders属性?A) B) C) D)(4)元素有⼀个c asc ade属性,如果希望H ibernate级联保存集合中的对象,c as ecade属性应该取什么值?(单选)A)noneB)saveC)deleteD)s ave-update(5)以下哪些属于Session的⽅法?A)load()B)save()C)delete()D)update()E)open()F)c lose()(6)以下程序的打印结果是什么?(单选)tx = s ession.beginT rans action();Cus tomer c1=(C ustomer)session.load(C ustomer.class,new Long(1));Cus tomer c2=(C ustomer)session.load(C ustomer.class,new Long(1));System.out.println(c1==c2);tx.c ommit();sess ion.close();A)运⾏出错,抛出异常B)打印fals eC)打印true(7)以下程序代码对C us tomer的name属性修改了两次:tx = s ession.beginT rans action();Cus tomer c us tomer=(Cus tomer)s ession.load(C ustomer.class,new Long(1));c ustomer.setN ame(\"Jack\");c ustomer.setN ame(\"M ike\");tx.c ommit();执⾏以上程序,H ibernate需要向数据库提交⼏条update语句?(单选)A)0 B)1C)2D)3(8)在持久化层,对象分为哪些状态?(多选)A)临时状态B)独⽴状态C)游离状态D)持久化状态(9)对于以下程序,C us tomer对象在第⼏⾏变为持久化状态?(单选)Cus tomer c us tomer=new C ustomer(); //line1c ustomer.setN ame(\"T om\"); //line2Session s ession1=sess ionFac tory.openSess ion(); //line3T rans action tx1 = sess ion1.beginT ransac tion(); //line4sess ion1.s ave(c us tomer); //line4tx1.c ommit(); //line5sess ion1.c lose(); //line6A) line1B)line2C)line3 D)line4E)line5 F)line6(10)对于以下程序,C us tomer对象在第⼏⾏变为游离状态?(单选)Cus tomer c us tomer=new C ustomer(); //line1c ustomer.setN ame(\"T om\"); //line2Session s ession1=sess ionFac tory.openSess ion(); //line3T rans action tx1 = sess ion1.beginT ransac tion(); //line4sess ion1.s ave(c us tomer); //line4tx1.c ommit(); //line5sess ion1.c lose(); //line6A) line1B)line2C)line3 D)line4E)line5 F)line6(11)以下哪⼀种检索策略利⽤了外连结查询?(单选)A)⽴即检索 B)延迟检索 C)迫切左外连结检索(12)假设对C us tomer类的orders集合采⽤延迟检索策略,编译或运⾏以下程序,会出现什么情况(单选)Session s ession=sess ionFac tory.openSess ion();tx = s ession.beginT rans action();Cus tomer c us tomer=(Cus tomer)s ession.get(C us tomer.c lass,new Long(1));tx.c ommit();sess ion.close();I terator orderI terator=c ustomer.getO rders().iterator();A)编译出错 B)编译通过,并正常运⾏ C)编译通过,但运⾏时抛出异常(13)关于HQL与SQL,以下哪些说法正确?(多选)A)HQL与SQL没什么差别B)HQL⾯向对象,⽽SQL操纵关系数据库C)在HQL与SQL中,都包含s elect,ins ert,update,delete语句D)HQL仅⽤于查询数据,不⽀持ins ert,update和delete语句(14)事务隔离级别是由谁实现的?(单选)A)Java应⽤程序 B)H ibernate C)数据库系统 D)JDBC驱动程序(15)悲观锁与乐观锁,哪个具有较好的并发性能?(单选)A)悲观锁 B)乐观锁答案:(1)A,B,C (2)B,C (3)A (4)D (5)A,B,C,D,F (6)C (7)B (8)A,C,D (9)D (10)F (11)C (12)C (13)B,D (14)C (15)B⼆、简答题:15、接⼝是否可继承接⼝? 抽象类是否可实现(implements)接⼝? 抽象类是否可继承实体类(concrete class)? 接⼝可以继承接⼝。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
美斯坦福在线考试系统荆州理工G3 Hibernate科目: SCCEG3Hibernate总分: 100分时间: 60分钟一、单选题(共45题,每题2分,说明:选择一项正确的答案)1、下面关于Hibernate的说法,错误的是()A、Hibernate是一个“对象-关系映射”的实现B、Hibernate是一种数据持久化技术C、Hibernate是JDBC的替代技术他是对JDBC做了轻量级的对象封装D、使用Hibernate可以简化持久化层的编码参考答案: C2、在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()A、配置客户和订单关联的cascade属性为save-updateB、配置客户和订单关联的cascade属性为allC、设置多对一关联的inverse属性为trueD、设置多对一关联的inverse属性为false参考答案: B详解3、下面一对多关联的配置中,存在哪些错误()<敳?慮敭尽牯敤獲?湩敶獲?晜污敳?慣捳摡?瑜畲履><one-to-many class=com.x.entity.Ordercolumn=customer_id /></set>A、inverse属性不可以设置为falseB、cascade属性不可设置为trueC、汣獡?捜浯砮攮瑮瑩?牏敤屲应为type=com.x.entity.OrderD、column属性不可再<one-to-many>节点内设置参考答案: B4、下面创建Criteria对象的语句中正确的是()A、Criteria c = query.createCriteria();B、Criteria c = query.addCriteria();C、Criteria c = session.createCriteria();D、Criteria c = session.createCriteria(User.class);参考答案: D5、下面关于Hibernate映射文件配置中dynamic-update属性说法正确的是()详解A、动态的修改,如果为true,只改变有改变的属性B、动态的修改,如果为true,只改变没有改变过的属性C、动态的修改,如果为true,改变所有的属性D、以上说法都错参考答案: A6、下面关系Hibernate对象的状态说话正确的是()临时持久化游离的对象只有一种状态Hibernat、AB、Hibernat的对象有2种状态种状态C、Hibernat的对象有3 种状态D、Hibernat的对象有4参考答案: C7、Hibernate对象从瞬时到持久状态转换的方式有()。
session A、调用的s ave方法saveorupdatB、调用session的create方法方法的update C、调用session D、调用session的load方法参考答案: A8、)________ J2EE中往往使用封装业务实体,____封装业务逻辑,调用(、实体Bean Bean 、会话BeanA 、实体、会话Bean BeanBeanBean、会话B、实体Bean 、会话、实体、会话、实体、实体、会话CBeanBeanBean Bean 、实体、会话、实体、会话DBeanBeanBeanBean参考答案: B9、)三种类型分为(EJB、bean、实体bean、会话AWeb servicebean bean、实体bean、会话B 、消息驱动jsf、servlet、Jsp、C接口类接口类、Object D、实现类、Home: B 参考答案、10)和无状态Session Bean的区别说法正确的是(有状态Session Bean 详解Session Bean要保存客户端的状态,同客户端是一对一A、无状态Session Bean要保存客户端的状态,同客户端是一对一B、有状态C、他们都要保存客户端的状态,同客户端是一对一D、以上说法都不对: B 参考答案、11有以下代码段,下面说法正确的是()p65String qlString = select model from Student as model wheremodel.createDate = ?1; (1)Query query = em.createQuery(qlString); (2) query.setParameter(0, ?0-12-05); (3)List list = q.list(); (4)A、第一行有错,必须为参数起个名字B、第三行有错误,query.setParameter(0,?0-12-05)应为query.setParameter(1, ?0-12-05);C、第四行没有错误D、这些语句没有错误参考答案: B12、在EJB3.0中用来保存一个对象的方法是()A、saveB、updateC、persistD、create参考答案: C13、在J2EE中,Servlet和JSP组件必须在()容器中才能运行A、AppletB、客户端C、WebD、EJB参考答案: C14、在J2EE中,EJB组件必须在()容器中才能运行A、AppletB、客户端C、WebD、EJB参考答案: D15、在三层结构中,数据访问层承担的责任是()A、定义实体类、数据的增删改查操作BC、业务逻辑的描述D、页面展示和控制转发参考答案: B16、<set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取()值A、noneB、saveC、deleteD、save-update参考答案: D17、以下程序的打印结果是()tx = session.beginTransaction();Customer c1=(Customer)session.load(Customer.class,newLong(1));Customer c2=(Customer)session.load(Customer.class,newLong(1));System.out.println(c1==c2);mit();session.close();A、运行出错,抛出异常B、打印falseC、打印trueD、编译出错参考答案: C、18name属性修改了两次:以下程序代码对Customer的tx = session.beginTransaction();Customer customer=(Customer)session.load(Customer.class,new Long(1));customer.setName(Jack\);customer.setName(Mike\);mit();)条update语句执行以上程序,Hibernate需要向数据库提交(0 A、1 B、2 C、3D、: B 参考答案19、)行变为游离状态close clear 对于以下程序,Customer对象在第(P82evictCustomer customer=new Customer();customer.setName(\Tom\);Session session1=sessionFactory.openSession();line1 Transaction tx1 = session1.beginTransaction(); //line2 session1.save(customer); //line3 //mit();line4 //session1.close();line1 A、line2 、 Bline3 C、line4 、 D: D 参考答案20、外连结查询以下检索策略中,()利用了20详解.A、立即检索B、延迟检索C、迫切左外连结检索D、迫切右外连结检索参考答案: C21、集合采用延迟检索策略,编译或运行以下程序,orders 假设对Customer类的)会出现(Session session=sessionFactory.openSession();tx = session.beginTransaction();Customer customer=(Customer)session.get(Customer.class,newLong(1));mit();session.close();Iterator orderIterator=customer.getOrders().iterator();A、编译出错、编译通过,正常运行,不显示任何信息 B、编译通过,正常运行,并显示出结果 C、编译通过,但运行时抛出异常 D: D 参考答案22、在源代码中嵌入映射信息需要()、AAnnoation、Bhbm.xmlstruts.xml 、 C web.xml 、D: A 参考答案23、ORM的好处包括()A、能进行关系对象的映射B、具有控制器功能、能在服务器端保存客户端状态 CD、向DTO一项能传递数据参考答案: A、24)方法来获取它的(已知某个实例的持久化标识,可以使用SessionA、load()、B loadAll()getAllData() C、、init() D参考答案: A25、Session如果不确定所寻找对象的持久化标识符,则需要使用查询,使用)方法的(、AcreateQuery()query() B、、C queryAll()queryObject() 、D: A 参考答案26、),会把对象的状态从数据库中移除使用Session的(delete() A、remove() B、clear()C、removeAll() 、 D: A 参考答案、27)接口进行的SQL查询的控制是通过(对原生SQLQuery 、ASession 、BList C、Query D、: A 参考答案28、可以把结果集映射的信息放在外部的()元素中,这样就可以在多个命名查询间或者通过setResultSetMapping()API 来访问A、<resultset>B、<result>C、<mapping>D、<description>参考答案: A29、使用Hibernate的QBC查询,要使用SQL中的类似select count(*) fromtablename方法求出记录数,必须使用()类A、RestrictionsB、ProjectionsC、CriteriaD、Criteron参考答案: B30、在Hibernate中,关于数据库的方言,下面说法正确的是()A、可以不写数据库方言B、数据库方言没有作用,可以随便写C、有通用的数据库方言可以使用D、数据方言对应于每个数据库,主要用于产生SQL语句参考答案: D31、下面不属于持久化的是()A、把对象转换称字符串的形式通过网络传输,在另一端接收到这个字符串后能把对象还原出来B、把程序数据从数据库中读出来C、从XML配置文件中读取程序的配置信息D、把程序数据保存为文件参考答案: A、32下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是)(public static void imain(String[] args){SessionFactory sf=newConfigration().configure().buildSessionFactory();Session session=sf.openSession();Medal medal=new Medal();medal.setOwner(“totong”);medal.setType(“Gold medal”);session.save(user);session.close();}、配置文件配置有误 A、没有在配置文件中包含对映射文件的声明 B、配置文件配置有误C、没有对持久化操作捕捉异常D、没有开启事务E: E 参考答案33、已知wage.getItem().size()的值是1。