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)。

  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表的表结构。

相关文档
最新文档