Hibernate基础考试题.docx
- 文档编号:9926471
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:19
- 大小:22.82KB
Hibernate基础考试题.docx
《Hibernate基础考试题.docx》由会员分享,可在线阅读,更多相关《Hibernate基础考试题.docx(19页珍藏版)》请在冰豆网上搜索。
Hibernate基础考试题
**学院课程考试试卷课程名称:
《》开发持久层企业及应用Hibernate:
使用Hibernate&EJB(A)卷班级:
年级:
姓名:
_______________学号:
_________________考试(考查)
闭卷
题号publicclassPerson{
privatejava.util.Datebirthday;
privateNamename;
privateStringkey;
publicStringgetKey(){
returnkey;
}
privatevoidsetKey(Stringkey){
this.key=key;
}
publicjava.util.DategetBirthday(){}publicStringgetLast(){
returnlast;
}
voidsetLast(Stringlast){
this.last=last;
}
publicchargetInitial(){
returninitial;
}
voidsetInitial(charinitial){
this.initial=initial;
}
}
1-20
21-40
41-50
总分
分数voidsetFirst(Stringfirst){
this.first=first;}
选择题(每题2分,共计100分)
1.在三层结构中,数据访问层承担的责任是()。
B
A.定义实体类
B.数据的增删改查操作...
C.业务逻辑的描述
D.页面展示和控制转发
2.下面关于Hibernate的说法,错误的是()。
C
A.Hibernate是一个“对象-关系映射”的实现
B.Hibernate是一种数据持久化技术
C.Hibernate是JDBC的替代技术…
D.使用Hibernate可以简化持久化层的编码
3.Hibernate配置文件中,不包含下面的(AB)。
[选两项]
A.“对象-关系映射”信息…
B.实体间关联的配置…
C.show_sql等参数的配置
D.数据库连接信息
4.在Hibernate关系映射配置中,inverse=true属性的含义是(C)。
A.定义在
B.声明在
C.定义在
D.声明在
5.在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,
下面方法可行的是(B)。
save-update
属性为cascade配置客户和订单关联的A.
B.配置客户和订单关联的cascade属性为all…
C.设置多对一关联的inverse属性为true
D.设置多对一关联的inverse属性为false
6.下面一对多关联的配置中,存在哪些错误,下列选项判断正确的()。
[选两项]BC
alsecascade=rue> column=customer_id/> falseA.inverse属性不可以设置为true;;; B.cascade属性不可设置为type=com.scce.pojo.Order;;;C.汣獡? 捜浯献捣? 潰潪伮摲牥应为 执行下面的hql查询,关于返回值的说法,正确的是( List query.list(): list selectu.username,u.userid fromcom.scce.pojo.Useru uisnotnull where 语法错误,不能执行A.的实例…B.返回一个类型为ListC.返回一个数组D.当返回结果只有一条时,返回一个数组。 7.ACD)一般情况下,关系数据模型与对象模型之间有哪些匹配关系(][选三项表对应类…A. //对象记录对应类B. ;;; 表的字段对应类的属性C. ;;; D.表之间的参考关系对应类之间的依赖关系] )。 [选两项的说法,正确的是(以下关于8.SessionFactory对于每个数据库事务,应该创建一个A.SessionFactory对象;;; 对象对应一个数据库存储源SessionFactory一个B. C.SessionFactory是重量级的对象,不应该随意创建。 如果系统中只有一个 数据库存储源,只需要创建一个;;;; D.SessionFactory的load()方法用于加载持久化对象 9.Customer类中有一个Set类型的orders属性,用来存放Order订单对象, 在Customer.hbm.xml Customer.hbm.xml? 文件中,用哪个元素映射orders属性()。 [选两项] A. B. C. D. 10. 取什么值()。 A.none B.save C.delete D.save-update;;;; 11.以下哪些属于Session的方法()。 [选三项] A.load();;;//delete()get()close()isOpen() B.save()… C.open() D.saveOrUpdate();;; 12.以下程序的打印结果是()。 tx=session.beginTransaction();//开始事务 Customerc1=(Customer)session.load(Customer.class,newLong (1)); Customerc2=(Customer)session.load(Customer.class,newLong (1)); System.out.println(c1==c2); mit(); session.close(); A.运行出错,抛出异常 B.打印false C.打印true;;; 编译出错D. 13.tx=session.beginTransaction(); Customercustomer=(Customer)session.load(Customer.class, newLong (1)); customer.setName(\Jack\); customer.setName(\Mike\); mit(); 执行以上程序,Hibernate需要向数据库提交几条update语句()。 A.0 B.1;; C.2 D.3 14.在持久化层,对象分为哪些状态()。 [选三项] A.瞬时(Transient)(临时) B.新建(New) C.游离(Detached)(脱管) D.持久(Persistent) 15.对于以下程序,Customer对象在第几行变为持久化状态()。 Customercustomer=newCustomer(); customer.setName(\Tom\); Sessionsession1=sessionFactory.openSession(); Transactiontx1=session1.beginTransaction();//line1 session1.save(customer);//line2它是动词,过程 mit();//line3(持久化等价于保存到硬盘) session1.close();//line4 A.line1 B.line2;;;; C.line3 D.line4 16.对于以下程序,Customer对象在第几行变为游离状态()。 Customercustomer=newCustomer(); customer.setName(\Tom\); Sessionsession1=sessionFactory.openSession(); Transactiontx1=session1.beginTransaction();//line1 session1.save(customer);//line2 mit();//line3 session1.close();//line4 A.line1 B.line2 C.line3 D.line4;;;; 17.以下哪一种检索策略利用了外连结查询()。 A.立即检索 B.延迟检索 C.迫切左外连结检索;; D.迫切右外连结检索 18.假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现()。 Sessionsession=sessionFactory.openSession(); tx=session.beginTransaction(); Customercustomer=(Customer)session.get(Customer.class,new Long (1)); mit(); session.close(); IteratororderIterator=customer.getOrders().iterator(); 编译出错A.编译通过,正常运行,不显示任何信息B.编译通过,正常运行,并显示出结果C.;;;编译通过,但运行时抛出异常D. )。 是(POJO19. PlainOldJavaObject;;;A.ProgrammingObjectJavaObjectB. PageOldJavaObjectC. PlainObjectJavaOldD. ] 选两项)。 [的作用是(20.POJO ;;对象映射数据库字段普通的A.Java数据访问B.;; 对象的赋值C. D.保存客户端对象 21.实现equals和hashCode最显而易见的作用是()。 A.比较两个对象标识符的值;; B.比较数据库的两条数据 C.比较两个组建是否部署在同一个应用服务器上 D.对象与字段的映射 22.在源代码中嵌入映射信息需要()。 A.XDoclet;; B.EJB C.Hibernate D.Spring 23.所有的Hibernate内建对象中,除了()都支持空(null)语义。 A.Collection;;;不支持null B.Element C.Entity D.NodeList 24.()元素把子对象的一些元素与父类对应的表的一些字段映射起来。 A.Component(组件) B.Element C.Attribute D.ActionForm 25.ORM是()。 A.对象关系映射 B.对象实体映射 C.数据传输对象 D.数据访问对象 26.JDBC可以做的三件事是()。 [选三项] A.与数据库建立连接 B.通过JDBC-API向数据库发送SQL语句 C.通过JDBC-API执行SQL语句 D.进行实体关系的映射 27.ORM的好处有()。 A.能进行关系对象的映射 B.具有控制器功能 能在服务器端保存客户端状态C. D.向DTO一项能传递数据 28.常见的实体域对象是()。 [选两项] A.主动域对象(EJB) B.JavaBean对象(也称为POJO,PlainOldJavaObject) C.控制器对象 D.ActionForm 29.常见的三层分别是()。 [选三项] A.应用层 B.业务逻辑层 C.数据访问层 D.通讯层 30.对象(实体的实例)对一个特定的Session来说,要么是一个____对象, 要么是____对象()。 [选两项] A.瞬时 B.持久化 C.控制器 D.数据传输对象 31.如果你已知某个实例的持久化标识,你可以使用Session的()方法 来获取它。 A.load() B.loadAll() C.getAllData() D.init() 32.如果你不能确定你要寻找的对象的持久化标识符,那么你需要使用查询, 使用Session的____方法()。 A.createQuery() B.query() C.queryAll() D.queryObject() 33.HQL不支持聚合函数有()。 HQL中聚合函数,不能使用? 占位,用*或类具体字段名 A.count(*) B.avg(…)//…代表字段名 C.count(…) count(? ) D. 34.____和____子句都不支持算数表达式()。 [选两项] A.groupby;;; B.orderby;;; C.computeby D.insertby 35.除了____和____外,查询语句都是对大小写不敏感的()。 [选两项] A.Java类;; B.POJO类;; C.映射文件 D.属性名称 36.fromCatascat,不仅仅返回____的实例,而且还返回____的实例()。 [选两项] A.Cat;;; B.Cat父类 C.Cat子类;;; D.Cat实现接口 37.____代表升序,____代表降序()。 [选两项] A.asc B.ansi C.desc D.description 38.对原生SQL查询的控制是通过()接口进行的。 A.SQLQuery;;; B.Session C.List D.Query 39.假设实体映射时有一个()的关联指向另外一个实体,在查询时必须也 返回那个实体,否则会导致发生一个”columnnotfound”的数据库错误。 A.many-to-one B.many-to-many C.one-to-many D.one-to-one;;; 40.在Hibernate中,关于数据库的方言,下面说法正确的是()。 可以不写数据库方言A. B.数据库方言没有作用,可以随便写 C.有通用的数据库方言可以使用 D.数据方言对应于每个数据库,主要用于产生SQL语句;;; 41.下面不属于持久化的是()。 A.把对象转换称字符串的形式通过网络传输,在另一端接收到这个字符串后 能把对象还原出来;; B.把程序数据从数据库中读出来 C.从XML配置文件中读取程序的配置信息 D.把程序数据保存为文件 42.下面不是Hibernate映射文件中包含的内容是()。 [选两项] A.数据库连接信息;; B.Hibernate属性参数;; C.主键生成策略 D.属性数据类型 43.下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是()。 publicstaticvoidimain(String[]args){ SessionFactory sf=new Configration().configure().buildSessionFactory(); Sessionsession=sf.openSession(); Medalmedal=newMedal(); medal.setOwner(“totong”); medal.setType(“Goldmedal”);session.save(user); session.close(); } A.配置文件配置有误 B.没有在配置文件中包含对映射文件的声明配置文件配置有误C.D.没有对持久化操作捕捉异常;; E.没有开启事务44.下列属于多对一关系的是(。 )书和作者A. 手机和生产厂家B. C.用户和发布的出租信息 D.士兵和班长;; 45.已知wage.getItem().size()的值是1。 要想使执行session.update(wage) 时自动执行session.update(wage.getItems().get(0)),必须配置()。 A. B. name=”items” inverse=”false” cascade=”none”>… C. D. name=”items” inverse=”false” cascade=”save-update”>… 46.已知系统中的tbl_user表对应的实体类是User,下列HQL语句中正确的是()。 [选两项] A.fromUser;;; B.select*fromtbluser C.selectUserfromUser D.fromUseruwhereu.uname=”15”;;; 47.在JAVA中,关于属性文件,下列选项中的说法正确的是()。 A.属性文件以名称和值的形式保存信息;; B.属性文件不能写中文 C.属性文件中能保存各种数据类型的信息 D.属性文件的文件扩展名是.xml 48.下面说法正确的是()。 [选两项] A.HQL只用于查询数据 B.HQL具备更强大的功能,实体的更新与删除即其主要特征之一;; C.delete与update子句为Hibernate2引入的新特性 D.delete与update子句为Hibernate3引入的新特性;; 49.VO与PO的主要区别在于()。 [选三项] A.VO是相对独立的实体对象,处于非管理状态;;; B.PO是由Hibernate纳入容器管理的对象,代表与数据库某条记录对应的实体… C.如果一个PO与其对应的Session实例分离,那么它将由PO变成VO… D.处于Model层的PO能被传到其他层 HQL语法结构(update/delete子句为Hibernate3引入的新特性) [select/update/delete] [from...] [where...] [groupby...[having...]] [orderby...] Component是一个被包含的对象,它作为值类型被持久化,而非一个 被引用的实体。 “component(组件)”这一术语指的是面向对象的合 成概念(而并不是系统构架层次上的组件的概念)举个例子, 你可以对人(Person)如以下这样来建模: returnbirthday; } publicvoidsetBirthday(java.util.Datebirthday){ this.birthday=birthday; } publicNamegetName(){ returnname; } publicvoidsetName(Namename){ this.name=name; } ...... ...... } publicclassName{ charinitial; Stringfirst; Stringlast; publicStringgetFirst(){ returnfirst; 现在,是作为的一个组成部分。 需要注意的是: (Person)人姓名(Name)需要对的持久化属性定义getter和setter方法,但姓名是不需要实现任何的接口或申明标识符字段。 以下是这个例子的Hibernate映射文件: --class attributeoptional--> irst\/> 人员(Person)表中将包括,,,和lastinitialpidbirthdayfirst等字段。 就像所有的值类型一样,Component不支持共享引用。 换句话说,两个人可能重名,但是两个person对象应该包含两个独立的name对象,只不过是具有“同样”的值。 Component的值为空从语义学上来讲是专有的(adhoc)。 每当重新加载一个包含组件的对象,如果component的所有字段为空,那么将Hibernate将假定整个component为空。 对于绝大多数目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hibernate 基础 考试题