Hibernate考试题

合集下载

Hibernate内部测试-笔试试卷

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.下面是某系统中的两个实体类,依此可以得知()。

hibernatemybatis内部测试笔试题

hibernatemybatis内部测试笔试题

ACCP7.0内部测试学期: Y2 模块:Java考试时间: 50分钟总分数:100分注意:1、请勿在试卷上留下笔迹2、交卷时试题和答案均要上交《使用Hibernate开发租房系统》内部测试笔试题一、选择题(共25题,每题2.5分,选择一项或多项,漏选错选不得分)1.在Hibernate中,以下关于主键生成器说法错误的是()。

A.increment可以用于类型为long、short或byte的主键B.identity用于如SQL Server、DB2、MySQL等支持标识列的数据库C.sequence用于如Oracle、SQL Server等支持序列的数据库D.native由Hibernate根据底层数据库自行判断采用何种主键生成策略,是由使用的数据库生成主键的值2.在Hibernate中,关于脏检查和刷新缓存说法正确的是()。

A.当事务提交时,会发生脏检查B.Session的flush( )方法是刷新缓存的方法C.在执行Session的commit( )方法之前不会调用Session的flush( )方法D.编写代码时,调用commit( )方法之前要调用flush( )方法3.使用HQL查询所有部门信息,以下正确的是()。

A.from DeptB.select * from cn.jbit.demo.entity.DeptC.select Dept from cn.jbit.demo.entity.Dept dD.select d from Dept d4.关于Query接口的list( )和iterate( )方法,说法正确的是()。

A.执行list( )方法,查询所有符合条件的记录B.执行iterate( )方法,查询所有符合条件的记录C.执行list( )方法,查询出所有符合条件的主键值D.执行iterate ( )方法,查询出所有符合条件的主键值5.在HQL中,关于Query接口绑定参数的方法,说法正确的是()。

hibernate复习题1

hibernate复习题1

1、名词解释: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练习题

hibernate练习题1年。

以下语句中创建条件对象的正确语句是radioA,条件c = query . CreateCriteria();标准c =查询。

添加标准();C、条件c =会话.创建条件();D、条件c =会话创建条件(用户类);2的正确结论。

查询对象是选择大于A的对象,List()方法返回总数据为0到大于B的列表对象,uniqueResut()方法返回对象或对象数组。

数据总量为0到1条数据C,hql:selectusername from user model可以使用list()方法获取查询结果D,hql:selectusername from user model可以使用uniqueResut()方法获取查询结果3Hibernate实体对象生产规范不包括以下规则中的哪一个来选择A,构造方法B声明没有公共参数,标识属性256 所有属性的getter和setter方法D,声明为最终类(最终修饰符)4在HQL语句的参数查询中,执行以下代码。

下列选项可以正确地为参数赋值:QUERY = S . CREATE QUERY(\ radioA,query.setParameter(1,B,query.setParameter(0,C,query.setString(0,Tom);整数(0,汤姆);5关于Hibernate的瞬时对象状态是错误的。

它是为具有OID的瞬时状态的更多对象选择A,B与会话对象相关联,具有瞬时状态的对象具有OID,C不与会话对象相关联,并且具有瞬时状态的对象不具有OID。

与会话对象相关联的瞬时状态对象没有OID,6相关的QBC查询短语与会话对象不相关联,以下语句是正确的:多选A,限制。

介于表示范围比较b,限制。

eq表示相等比较C,限制。

le表示小于或等于比较d,限制。

ge表示大于或等于比较7年,以下操作对一级缓存的影响被错误地描述为| 1执行删除操作时,如果对象没有OID,将引发异常b。

Hibernate复习题1含答案要点

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考试题及答案

hibernate考试题及答案

hibernate考试题及答案一、单选题(每题2分,共10分)1. Hibernate中的对象状态有以下几种?A. 瞬时态B. 持久态C. 游离态D. 以上都是答案:D2. Hibernate中哪个接口负责事务管理?A. SessionB. TransactionC. SessionFactoryD. Configuration答案:B3. 在Hibernate中,以下哪个注解用于指定类与表的映射关系?A. @EntityB. @TableC. @ColumnD. @Id答案:A4. Hibernate中的延迟加载技术是通过以下哪个接口实现的?A. SessionB. CriteriaC. QueryD. StatelessSession答案:D5. Hibernate中,以下哪个是正确的主键生成策略?A. IDENTITYB. SEQUENCEC. AUTOD. 以上都是答案:D二、多选题(每题3分,共15分)1. Hibernate中支持的关联关系有哪些?A. 一对一B. 多对一C. 多对多D. 一对多答案:A, B, C, D2. 在Hibernate中,哪些是有效的缓存策略?A. 一级缓存B. 二级缓存C. 查询缓存D. 会话缓存答案:A, B, C3. Hibernate中,哪些是有效的查询方式?A. HQL查询B. SQL查询C. Criteria查询D. Query查询答案:A, B, C, D4. Hibernate中,以下哪些是有效的集合映射类型?A. SetB. ListC. BagD. Map答案:A, B, C, D5. 在Hibernate中,以下哪些是有效的事务管理策略?A. 声明式事务B. 编程式事务C. 自动提交事务D. 手动提交事务答案:A, B三、判断题(每题1分,共5分)1. Hibernate是一个半自动ORM框架。

(错误)2. Hibernate支持多数据库方言。

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属性值不可以使用()。

hibetnate试题

hibetnate试题

hibetnate试题1.若数据库是Oracle或者DB2,则以下generator属性值不能使用的是(B)。

A.nativeB.indentityC.hiloD.sequence2.Hibernate增加数据时可以调用session的(AC)方法。

A.saveB.updateC.deleteD.saveOrUpdate3.使用Hibernate技术实现数据库持久化时,一下不在Hibernate 配置文件中的是(D).A.数据库连接信息B.数据库类型(Dialect)C.show_sql参数D.数据库表及实体的映射信息4.Hibernate对JDBC访问数据库的代码进行封装,从而大大简化了数据访问层的重复性代码,是针对三层架构中(B)的解决方案。

A.表现层B.业务逻辑层C.持久化层D.数据库系统5.三层结构是如今最为典型的一种应用软件分层结构,三层分别为(ABD)A.表现层B.业务逻辑层C.持久化层D.数据库系统6.ORM解决的主要问题就是对象-关系的映射,以下关于面向对象概念与面向关系概念的对应关系说法正确的是(AC)A.类对应表B.对象对应表C.属性对应表的列(字段)D.属性对应表表的行(记录)7.关于依赖注入,以下说法正确的是(CD)A.依赖注入是一种设计开发模式B.依赖注入使得组件之间相互依赖,互相制约C.依赖注入提倡使用接口编程D.依赖注入使得可以独立开发各个组件,然后根据组件之间的依赖关系组装8.级联删除时,cascade属性是(AC)。

A.allB.saveC.deleteD.save-update9.cascade的属性值有(ACD)A.allB.saveC.deleteD.save-update10.inverse属性值为(C)是标识主控方。

A.allB.falseC.trueD.none11.从性能考虑,inverse属性值一般设置为(C)A.allC.trueD.none12.使用Hibernate是Teacher,Student类的代码如下:public class Teacher{private int teacherId;private String teacherName;//getter,setter方法……}public class Student{private int StudentId;private String StudentName;private Teacher teacher;//getter,setter方法}在Student.hbm.xml映射文件中,下列配置代码正确的是(D)。

Hibernate试题

Hibernate试题

Hibernate&EJB考试试题1、下面关于Hibernate说法正确的是()(选择两项)A)Hibernate是ORM的一种实现方式B)Hibernate不要JDBC的支持C)属于控制层D)属于数据持久层2、下面关于ORM的说法错误的是()(选择两项)A)对象关系映射,让现实中的对象同数据库的表产生映射B)对象关系映射,让类同表产生关系C)对象关系映射,让类同记录产生关系D)对象关系映射,让类中的属性同表中的列产生关系3、下面关于Hibernate中Session的说法正确的是()(选择两项)A)Session是轻量级的,可以随意的创建和销毁B)Session是重量级的,不能随意的创建和销毁C)Session是线程安全的D)Session不是线程安全的4、在Hibernate中,一下()不属于session的方法A、close() B. open() C. update() D. delete()5、下面关于Hibernate中load和get方法说法正确的是()A)这两个方法是一样的,没有任何的区别B)这两个方法不一样,laod先找缓存,再找数据库C)这两个方法不一样,get先找缓存,再找数据库D)以上说法都不对6、在Hibernate中修改对象的说话错误的是()A)只能利用update方法来做修改B)可以利用saveOrUpdate方法来做修改C)可以利用HQL语句来做修改D)不能利用HQL语句来修改7、下面关于Hibernate中Transaction的使用说法正确的是()(选择两项)A)Transaction是可有可无的B)Transaction在做查询的时候是可有可无的C)Transaction在做修改的时候是可有可无的D)Transaction在做修改的时候是必须的8、使用Hibernate技术实现数据持久化时,下面()内容不在H ibernate配置文件中配置(选择一项)A) 数据库连接信息B) 数据库类型(dialect)C) show_sql参数D) 数据库表和实体的映射信息9、关于Hibernate中show_sql配置说法正确的是()(选择两项)A)默认值为trueB)默认值为falseC)为true时表示在后台打印出SQL语句D)为false表示在后台打印出SQL语句10、关于Hibernate中关系的说话正确的是()A)一对多必须用Set来映射B)多对一必须用Set来映射C)一对多可以用Set来映射,也可以用List、Map来映射D)多对一必须用Set来映射,也可以用List、Map来映射11、从SessionFactory中得到Session的方法是()A)getSessionB)openSessionC)currentSessionD)以上都不是12、在Hibernate映射文件的ID的配置中,主键生成器native的说法正确的是()A)包括desc、asc和identityB)包括desc、asc和sequenceC)包括increment、sequence、hilo和identityD)包括sequence、hilo和identity13、下列关于延迟加载说法正确的是()(选择两项)A)lazy="true"表示采用延迟加载B)lazy="false"表示采用延迟加载C)Lazy默认情况下位trueD)Lazy默认情况下位false14、在多对一得配置中,关于fetch的配置说法正确的是()A)其值可以是true或falseB)其值可以是join或selectC)其值可以是lazy或inverseD)以上都不对15、Hibernate 对JDBC访问数据库的代码做了封装,从而大大简化了数据访问的重复性代码,它是针对三层架构中( )的解决方案A)表现层B)业务逻辑层C)持久化层D)数据库系统16、在Hibernate中,下面代码实现了对TblFwxx实体中title属性的模糊查询,则下列选项的说法正确的是()Session session=this.getSession();String hql=”from TblFwxx fw where fw.title like ?”;//(1)Query query=session.createQuery(hql);//(2)query.setString(0,”%健翔桥%”)//(3)List list=query.list();//(4)A)第(1)行TblFwxx和fw间必须有as关键字B)第(2)行没有错误C)第(3)行应该为:query.setString(a,”健翔桥”);D)第(4)行应该为List list=query.executeQuery();17、下面关于数据持久化概念的描述,错误的是()。

Hibernate试题

Hibernate试题

一、选择题(每题2分共22分)(1)一般情况下,关系数据模型与对象模型之间有哪些匹配关系(多选)A)表对应类 B)记录对应对象 C)表的字段对应类的属性D)表之间的参考关系对应类之间的依赖关系(2)以下关于SessionFactory的说法哪些正确?(多选)A)对于每个数据库事务,应该创建一个SessionFactory对象B)一个SessionFactory对象对应一个数据库存储源。

C)SessionFactory是重量级的对象,不应该随意创建。

如果系统中只有一个数据库存储源,只需要创建一个。

D)SessionFactory的load()方法用于加载持久化对象(3)元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)A)none B)save C)delete D)save-update(4)以下哪些属于Session的方法?A)load()B)save()C)delete()D)update()E)open()F)close()(5)以下程序的打印结果是什么?(单选)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);mit();6.session.close();A)运行出错,抛出异常B)打印falseC)打印true(6)以下程序代码对Customer的name属性修改了两次:1.tx = session.beginTransaction();2.Customer customer=(Customer)session.load(Customer.class,3.new Long(1));4.customer.setName(\"Jack\");5.customer.setName(\"Mike\");mit();执行以上程序,Hibernate需要向数据库提交几条update语句?(单选)A)0 B)1 C)2 D)3(7)在持久化层,对象分为哪些状态?(多选)A)临时状态 B)独立状态 C)游离状态 D)持久化状态(8)对于以下程序,Customer对象在第几行变为持久化状态?(单选)1.Customer customer=new Customer(); //line12.customer.setName(\"Tom\"); //line23.Session session1=sessionFactory.openSession(); //line34.Transaction tx1 = session1.beginTransaction(); //line45.session1.save(customer); //line4mit(); //line57.session1.close(); //line6A) line1 B)line2 C)line3 D)line4 E)line5 F)line6(9)对于以下程序,Customer对象在第几行变为游离状态?(单选)1.Customer customer=new Customer(); //line12.customer.setName(\"Tom\"); //line23.Session session1=sessionFactory.openSession(); //line34.Transaction tx1 = session1.beginTransaction(); //line45.session1.save(customer); //line4mit(); //line57.session1.close(); //line6A) line1 B)line2 C)line3 D)line4 E)line5 F)line6(10)关于HQL与SQL,以下哪些说法正确?(多选)A)HQL与SQL没什么差别B)HQL面向对象,而SQL操纵关系数据库C)在HQL 与SQL中,都包含select,insert,update,delete语句D)HQL仅用于查询数据,不支持insert,update和delete语句(11)事务隔离级别是由谁实现的?(单选)A)Java应用程序 B)Hibernate C)数据库系统 D)JDBC驱动程序二、简答题(每题6分共48分)1.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)2. Hibernate是如何延迟加载?3.hibernate优点4.简答Hibernate的缓存机制5.Hibernate对象的三种状态是什么?6.session.load()和session.get()的区别7.如何优化Hibernate?8.在数据库中条件查询速度很慢的时候,如何优化?三.论述题(每题15分共30分)1.Hibernate的主键生成机制2.Hibernate工作原理及为什么要用?。

hibernate练习题

hibernate练习题

问答题:
1.hibernate的三种状态之间如何转换
2.如何在控制台看到hibernate生成并执行的sql
3.Hibernate工作原理及为什么要用?
4.Hibernate是如何延迟加载?
5.说下Hibernate的缓存机制?
6.Hibernate的查询方式有几种,分别简述。

7.谈谈Hibernate中inverse的作用
8.hibernate hbm2ddl.auto做属性以及表示的作用
9.hibernate 格式化sql语句的配置
10.常用的hibernate注解以及意义。

练习题:
搭建hibernate框架,使用注解的方式实现对单表的增删改查操作,以及两张表的联合查询。

表:student 字段
表:classroom
注:无需创建主外键之间的关系,只需hibernate配置两张表的关联关系
1.实现对学生表的增删改查,用4个方法。

2.实现两表的关联查询学生的cid关联classroom表的cid。

软件开发框架(J2EE)Hibernate映射与检索习题与答案

软件开发框架(J2EE)Hibernate映射与检索习题与答案

一、单选题1.下面关于Hibernate的说法,错误的是()。

A、Hibernate是一个“对象-关系映射”的实现B、Hibernate是一种数据持久化技术C、Hibernate是JDBC的替代技术D、使用Hibernate可以简化持久化层的编码2.在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()。

A、配置客户和订单关联的cascade属性为save-updateB、配置客户和订单关联的cascade属性为allC、设置多对一关联的inverse属性为trueD、设置多对一关联的inverse属性为false3.下面一对多关联的配置中,存在哪些错误()。

<set name="orders" inverse="false" cascade="true"><one-to-many class="com.x.entity.Order"column="customer_id" /></set>A、cascade属性不可设置为trueB、inverse属性不可以设置为falseC、class="com.x.entity.Order"应为type="com.x.entity.Order"D、column属性不可再<one-to-many>节点内设置4.下面创建Criteria对象的语句中正确的是()。

A、Criteria c = query.createCriteria();B、Criteria c = query.addCriteria();C、Criteria c = session.createCriteria();D、Criteria c = session.createCriteria(User.class);5.下面关于Hibernate映射文件配置中dynamic-update属性说法正确的是()。

Hibernate复习题1含答案

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面试十大理论题

hibernate面试十大理论题

Hibernate面试十大理论题1、请简述hibernate开发程序的优势Hibernate是一个数据持久化框架,它封装了jdbc简化了对数据库的相关操作,它是一个ORM(对象-关系映射模型)的实现,使面向对象程序能够更好的操作关系型数据库,它提供了丰富的查询方式(hql,本地sql,criteria)和多种数据加载机制以及数据缓存机制,能够提高程序的性能,减少系统的开销。

2、简述hibernate环境的搭建1、导入hibernate相关的jar包2、然后配置hibernate.cfg.xml文件3、编写相关的实体映射文件(类→表)(属性→列名)4、将实体映射文件加入到hibernate.cfg.xml中3、简述hibernate配置实体映射文件的内容根节点是hibernate-mapping,下面有class节点,class节点的name属性对应的是实体映射文件的路径,table属性是实体所对应的数据库表的表名。

Class下面有id和property,id是配置数据库表中主键对应的类的属性,property是配置数据库表的其他列对应的类的属性,属性type是对应的类型,name对应是类的属性名。

下面的column的属性name对应的是数据库的列名,id下面还有generator属性是主键的类型,其中常用的有assigned是自定义主键,identity是sql数据库自动生成,sequence是Oracle 数据库自动生成,sequence还要配置param调用哪个序列。

如果有多对一要配置<many-to-one></many-to-one>节点,一对多要配置<set></set>节点。

4、Hibernate的运行机制根据Java类和数据库表的映射关系配置,依赖Java的反射机制,xml解析技术和jdbc完成对象与数据库之间数据的转换操作,以及对象的关系操作,通过解析配置文件将发出的数据库操作指令转换成为相应的sql语句来完成操作。

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 选择题答案

Hibernate 选择题答案

(A)运行出错,抛出异常 (B)打印false
(C)打印true (D)运行通过,但什么都不显示 2.
7.以下哪个选项不是持久化层的对象状态? ( B )
(A)临时状态 (B)独立状态 (C)游离状态 (D)持久化状态 3.
8.对于以下程序,Customer对象在第几行变为游离状态? (D ) Customer customer=new Customer(); //line1 customer.setName(\"Tom\"); //line2 Session session1=sessionFactory.openSession(); //line3 Transaction tx1 = session1.beginTransaction(); //line4 session1.save(customer); //line4 mit(); //line5 session1.close(); //line6
(A)<set> (B)<one-to-many> (C)<many-to-one> (D)<property> 1.
4.<set>元素有一个cascade属性,如果希望Hibernate级联保存集合中 的对象,casecade属性应该取什么值?( D )
(A)none (B)save (C)delete (D)save-update 5.以下哪个不属于Session的方法?(D )
(A)line1 (B)line3 (D)line6 4.
9.以下哪一种检索策略利用了外连结查询? ( C )
(A)立即检索 (B)延迟检索
(C)迫切左外连结检索 (D)迫切右外连结检索 5.

精华-Hibernate面试题-答案大集合

精华-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.表字段要少,表关联不要怕多,有二级缓存撑腰。

Hibernate-测试题目

Hibernate-测试题目

--------------------------------------装--------------------------------------订------------------------------线----------------------------------------**学院课程考试试卷课程名称:《Hibernate:使用Hibernate&EJB开发持久层企业及应用》(A)卷年级:班级:姓名:_______________ 学号:_________________ 考试(考查) 闭卷题号1-20 21-40 41-50 总分分数选择题(每题2分,共计100分)1.在三层结构中,数据访问层承担的责任是()。

BA.定义实体类B.数据的增删改查操作...C.业务逻辑的描述D.页面展示和控制转发2.下面关于Hibernate的说法,错误的是()。

CA.Hibernate是一个“对象-关系映射”的实现B.Hibernate是一种数据持久化技术C.Hibernate是JDBC的替代技术…D.使用Hibernate可以简化持久化层的编码3.Hibernate配置文件中,不包含下面的()。

[选两项]A.“对象-关系映射”信息…B.实体间关联的配置…C.show_sql等参数的配置D.数据库连接信息4.在Hibernate关系映射配置中,inverse=true属性的含义是( C )。

A.定义在<one-to-many>节点上,声明要负责关联的维护B.声明在<set>节点上,声明要对方负责关联的维护…C.定义在<one-to-many>节点上,声明对方要负责关联的维护D.声明在<set>节点上,声明要负责关联的维护5.在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是( B )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

配置B)SessionFactory 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存
C)Query和Criteria接口:执行数据库的查询
D)Transaction 接口:管理事务
5.对于以下程序,Customer对象在第()行变为游离状态(Detached)。

Customer customer=new Customer(); //line1
customer.setName("Tom"); //line2
Session session1=sessionFactory.openSession(); //line3
Transaction tx1 = session1.beginTransaction(); //line4
session1.save(customer); //line4
mit(); //line5
session1.close(); //line6
A) line1
B)line2
C)line3
D)line4
E)line5
F)line6
6. 以下程序代码对Customer的name属性修改了两次:
tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class, new Long(1));
customer.setName("Jack");
customer.setName("Mike");
mit();
执行以上程序,Hibernate需要向数据库提交()条update语句。

A)0
B)1
C)2
D)3
7. 下面是某系统中的两个实体类,依次可以得知()。

public class Wage{ //月工资实体类
private Long wid;
private String empName; //雇员姓名
private String month; //月份
//Getter & Setter

}
public class WageItem{ //工资项
private Wage wage;
private Long iid;
private String itemName; //项目名称
private String amount;//数额
//Getter & Setter

}
A)Wage和WageItem间存在单向一对多的关联
B)Wage和WageItem间存在单向多对一的关联
C)Wage和WageItem间存在双向一对多的关联
D)Wage和WageItem间存在双向多对一的关联
8. Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用()映射orders属性。

A) <set>
B) <one-to-many>
C) <many-to-one>
D) <property>
9.在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是( )。

A) 配置客户和订单关联的cascade属性为save-update
B) 配置客户和订单关联的cascade属性为all
C) 设置多对一关联的inverse属性为true
D) 设置多对一关联的inverse属性为false
10.关于执行HQL语句:from Cat as cat的结果,下列说法正确的是()。

A) 返回Cat实例
B) 返回Cat子类实例
C) 返回Cat实例和它的子类实例D) 返回Cat实现的接口
11. 执行下面的hql查询,关于返回值的说法,正确的是()。

select ername,erid
from er u where u is not null
A) 语法错误,不能执行
B) 返回一个类型为List的实例
C) 返回一个数组
D) 当返回结果只有一条时,返回一个数组
12. 下面代码的执行效果是()。

String hql = "from TblStudent s order by s.score desc";
Query query = session.createQuery(hql);
query.setFirstResult(0);
query.setMaxRexults(5)
return query.list();
A)返回分数最高的5个学生
B)返回分数最高的6个学生
C)返回分数最低的5个学生
D)返回分数最低的6个学生
13.关于Hibernate的事务隔离机制,下列说法错误的是()。

A) 设置成可重复读(repeatable read)时,可能出现幻想读的并发问题
B) 在Hibernate的配置文件中,通过connection.isolation来设置隔离级别
C) 乐观锁是利用Hibernate提供的版本控制功能来解决并发问题的
D) 在一个事务中,当一个对象加悲观锁后,其他事务也可以更新该对象
14.以下程序的打印结果是()。

tx = session.beginTransaction();
Customer c1=(Customer)session.load(Customer.class,new Long(1)); Customer c2=(Customer)session.load(Customer.class,new Long(1));
System.out.println(c1==c2);
mit();
session.close();
A)运行出错,抛出异常
B)打印false
C)打印true
D)运行通过,但什么都不显示
15.下列关于Hibernate缓存的说法,不正确的是()。

A) 一级缓存即session缓存,它是不允许且无法被卸载的
B) 二级缓存是一个不可插拔的缓存插件,由SessionFactory负责管理,如EHCache
C) 当配置了二级缓存时,session在load时会先去二级缓存中查找,若没找到再去数据库中查找
D) 当配置了查询缓存时,session在重复load时会先去查询缓存中查找,若没找到再去二级缓存中查找,若再没有则去数据库中查找
二、多选题(5个*4分)
1.下面关于Hibernate的说法,正确的是()。

A) Hibernate是一个“对象-关系映射”的实现
B) Hibernate是一种数据持久化技术
C) Hibernate是JDBC的替代技术
D) 使用Hibernate可以简化持久化层的编码
2. 下面关于数据持久化概念的描述,正确的是()。

A) 保存在内存中数据的状态是瞬时状态(Transient)
B) 持久状态(Persistent)的数据在关机后数据依然存在
C) 数据可以由持久状态转换为游离状态(Detached)
D) 数据持久化是指数据在程序退出后以文件等形式保存在存储设备中
3.Hibernate实体类对象的状态有()。

A) 临时状态(Transient)
B)新建状态(New)
C) 持久状态(Persistent)
D)游离状态(Detached)
4. 已知系统中的tbl_user表对应的实体类是User,下列HQL语句中正确的是()。

A) from User
B) select * from tbluser
C) select User from User
D) from User u where u.uname=”15”
5.适合放入Hibernate二级缓存中的有()。

A) 很少被修改的数据B) 经常被访问的数据
C) 数目有限的数据
D) 与其他应用共享的数据
三、判断(5个*2分)
()1.HQL是基于SQL的,面向关系型数据库的查询方式,它提供了更加面向对象的封装。

()2.SessionFactory是重量级的,不能随意创建和销毁;而Session是轻量级的,可以随意创建和销毁。

()3.Hibernate的事务隔离级别设置的越高,执行的数据准确性越高,并发问题越少,所以使用时通常都设置最高的隔离级别。

()4.乐观锁采用的是在读出一条记录后立即加锁的原理,它能解决不可重复读的并发问题。

()5.当做重复查询时,可以使用查询缓存,前提是已经使用了二级缓存。

四、简答(2个*10分)
1. Hibernate工作原理。

2.简述多表连接查询时可能出现的N+1问题。

五、编程(10分)
数据库acc中有两个表:student(id , name)和score(id , subject , score , personid) ,其中score表中的personid字段是外键,参照student表中的id字段。

使用Hibernate框架技术实现下列操作:使score表和student表实现单向多对一关联映射,请简单编写对应的映射文件和持久化类。

下图分别是student表和score表的表结构。

相关文档
最新文档