Hibernate最新练习题

合集下载

hibernate练习题

hibernate练习题

1.下面创建Criteria对象的语句中正确的是单选A、Criteria c = query.createCriteria();B、Criteria c = query.addCriteria();C、Criteria c = session.createCriteria();D、Criteria c = session.createCriteria(User.class);2. Query对象执行查询结论正确的是多选A、list()方法返回结果为List对象,数据总量为0到多条B、uniqueResut()方法返回结果为对象或对象数组,数据总量为0到1条数据C、HQL:select userName from UserModel可以使用list()方法进行查询结果的获取D、HQL:select userName from UserModel可以使用uniqueResut()方法进行查询结果的获取3Hibernate实体对象制作规范不包含下列哪条规则单选A、声明无参公共的构造方法B、提供用于作为OID的标识属性C、为所有属性提供getter与setter方法D、声明为最终类(final修饰)4在HQL语句的参数查询中,执行以下代码,下列选项能够为参数正确赋值的操作是Query query = s.createQuery("from Customer o where =?");单选A、query.setParameter(1, "Tom");B、query.setParameter(0, "Tom");C、query.setString(0,Tom);D、query.setInteger (0,Tom);5有关Hibernate瞬时对象状态说法错误的是多选A、瞬时状态的对象具有OID,与Session对象关联B、瞬时状态的对象具有OID,不与Session对象关联C、瞬时状态的对象不具有OID,与Session对象关联D、瞬时状态的对象不具有OID,不与Session对象关联6有关QBC查询短语,下列说法正确的多选A、Restrictions.between表示范围比对B、Restrictions.eq表示等比对C、Restrictions.le表示小于等于比对D、Restrictions.ge表示大于等于比对7下列操作对一级缓存的影响描述错误的是单选A、执行delete操作时,如果对象不具有OID,将抛出异常B、执行update操作时,如果对象不具有OID,将抛出异常C、执行update操作时,如果一级缓存中已经存在有相同OID数据,将抛出异常D、执行merge操作时,如果一级缓存中已经存在有相同OID数据,将抛出异常8下列哪项不是用于配置数据库连接的配置单选A、hibernate.connection.urlB、ernameC、hibernate.show_sqlD、hibernate.connection.password9以下有关Query对象获取查询结果说法不正确的是单选A、list()方法返回结果为List集合B、list()方法返回结果数据总量为1到多条数据C、uniqueResut()方法返回结果内容为对象或对象数组D、uniqueResut()方法返回结果数据总量为0到1条数据10下列关于Hibernate缓存设置描述正确的是多选A、二级缓存默认开启,无需手工设置B、一级缓存是Session级别的缓存,不同Session对象间数据不共享C、二级缓存是SessionFactory级别的缓存,同一个SessionFactory开启的不同Session间数据共享D、二级缓存的数据首先加载到一级缓存中,然后一级缓存将数据返回给应用程序11下列哪个接口用于执行原生SQL单选A、SQLQueryB、SessionC、ListD、Query12Hibernate常用API初始化错误的是多选A、Configuration conf = Configuration.getConfiguration();B、SessionFactory sf = conf.getSessionFactory();C、Session s = sf.getSession();D、Transaction t = s.getTransaction();13下列哪些规则不能作为Hibernate持久化类定义的规范多选A、声明可访问的无参构造方法B、为所有属性提供getter与setter方法C、声明为最终类(final修饰)D、为实体模型类实现序列化接口14进行Hibernate属性配置时,不能使用下列哪种配置格式多选A、<property name="name">B、<property column="age">C、<property "address"=name "addr"=column>D、<property name="usreName" column="userName"></property>15下列OID生成策略错误的是多选A、autoB、identityC、uuidD、random16下列不属于外连接查询HQL语句的是单选A、HQL:from TeacherModel tm inner join fetch tm.studentsB、HQL:from TeacherModel tm left outer join tm.studentsC、HQL:from TeacherModel tm left outer join fetch tm.studentsD、HQL:from TeacherModel tm right outer join tm.students17以下有关Hibernate映射说法不正确的是多选A、类中的属性必须与表中的字段一一对应,全部映射B、表中的字段必须与类中的属性一一对应,全部映射C、一个类可以映射多个表,一个表可以映射多个类D、关联关系必须配置成双向的,不能只配置一边18下列关于关联关系对象模型描述错误的是单选A、一对多关系中,一方模型中添加多方模型的集合B、一对多关系中,多方模型中添加一方模型的对象C、多对多关系中,双方模型中添加对应模型的对象D、多对多关系中,双方模型中添加对应模型的集合19关于二级缓存数据加载描述正确的是多选A、load与get查询的数据进入二级缓存B、HQL查询的数据进入二级缓存C、QBC查询的数据进入二级缓存D、使用SQLQuery执行的查询数据进入二级缓存20下列哪些技术可以用于完成数据库的添加操作多选A、JDBCB、Apache DBUtilsC、struts2D、Hibernate21下列Hibernate映射配置文件命名不正确的是单选A、user.propertiesB、user.hbm.xmlC、User.hbm.xmlD、UserModel.hbm.xml22完成按照用户年龄进行查询,下列程序片段如下String hql = "from UserModel where age = ?";Query q = s.createQuery(hql);q.________(0,18);空白处可以填写的内容为多选A、setIntegerB、getIntegerC、setParameterD、getParameter23下列关于Session对象查询单一数据描述正确的是A、load方法是延迟加载,如果设置模型lazy=false或实体类设置为final修饰将无法产生代理对象B、get方法是立即加载,如果查询的数据不存在返回nullC、load方法查询的数据不存在将抛出异常D、load与get方法都可以用于查询0到多条数据24能够完成查询操作的正确HQL语句格式有哪些多选A、from UserModel where um.uuid = :uuidB、from UserModel where uuid = ?C、from UserModel um where m.uuid = ?D、from UserModel um25以下HQL语句书写语法格式错误的是单选A、select erName from UserModelB、select userName from UserModel umC、select userName from UserModel as umD、from UserModel um26持久化类的编写规则有哪些?多选A、提供一个无参数public访问控制符的构造器B、提供一个标识属性,映射数据表主键字段C、所有属性提供public访问控制符的set get 方法D、属性应尽量使用基本数据类型的包装类型27完成按用户名进行查询,程序片段如下String hql = "from UserModel where userName = ?";Query q = s.createQuery();q.________(0,”value”);空白处应该填写的内容为单选A、setB、getC、setParameterD、getParameter28下列操作哪些能完成对实体类UserModel的全数据查询Configuration conf = new Configuration().configure(); SessionFactory sf = conf.buildSessionFactory();Session s = sf.getSession();多选A、s.createQuery(from UserModel);B、s.createQuery("from UserModel");C、s.createCriteria("UserModel");D、s.createCriteria(UserModel.class);29实现Hiberante延迟加载策略产生代理对象由下列哪个包完成?单选A、javassist.jarB、ehcache.jarC、hibernate3.jarD、jta.jar30QBC查询可以用于完成等于关系的短语是单选A、Restrictions.equalsB、Restrictions.eqC、Restrictions.leD、Restrictions.ge31Hibernate的对象状态不包含下列哪一种单选A、瞬时状态B、持久化状态C、约束状态D、托管状态32已知系统中的tbl_user表对应的实体类是User,下列HQL语句中正确的是多选A、from UserB、select * from tbl_userC、select User from UserD、from User u where u.uname=”15”33下列名称可以用于作为Hibernate映射配置名的是多选A、User.cfg.xmlB、User.xmlC、UserModel.hbm.xmlD、user.properties34Hibernate级联保存集合中的对象,casecade属性应该取什么值单选A、noneB、saveC、deleteD、save-update35完成查询用户表中的信息总量,程序片段如下String hql = "select count(uuid) from UserModel";Query q = s.createQuery(hql);________ count = s.uniqueResult();空白处应该填写的内容为单选A、IntegerB、LongC、FloatD、Double36. OID生成策略不包含下列哪种单选A、assignedB、autoC、nativeD、identity37hibernate的二级缓存关于类级别的缓存说法正确的是多选A、缓存中存放的是对象的实体B、缓存中存放的是对象实体的散装数据,查询时会重新组织新的实体对象C、集合缓存要依赖于类级别的缓存,因为这里存放的是OIDD、查询缓存依赖于类级别的缓存38已知要查询数据的OID,完成查询OID为指定值的数据可以通过如下哪些方法实现多选A、load()B、loadAll()C、get()D、init()39Hibernate快照描述错误的是单选A、快照是一级缓存中的特殊区域B、快照是二级缓存中的特殊区域C、快照是自动产生的,不可以手工修改D、快照的作用是用于比对一级缓存中的数据是否进行增删改操作40以下方法不是Session接口用于进行增删改操作的是单选A、save(Object obj)B、update(Object obj)C、delete(Object obj)D、load(Class clazz, Serializable uuid)。

软件开发框架(J2EE)Hibernate概述习题与答案

软件开发框架(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练习题

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支持多数据库方言。

题库

题库

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

hibernate考试题及答案

hibernate考试题及答案

hibernate考试题及答案一、单选题(每题2分,共10分)1. Hibernate中,哪个接口负责对象的持久化操作?A. SessionFactoryB. SessionC. TransactionD. Configuration答案:B2. 在Hibernate中,以下哪个是正确的实体类注解?A. @EntityB. @TableC. @ColumnD. @Id答案:A3. Hibernate中,哪个方法用于获取当前Session?A. getCurrentSession()B. openSession()C. closeSession()D. flush()答案:A4. 在Hibernate中,以下哪个是正确的级联策略?A. CascadeType.ALLB. CascadeType.NONEC. CascadeType.PERSISTD. CascadeType.MERGE答案:A5. Hibernate中,哪个类负责管理数据库方言?A. DialectB. SessionFactoryC. SessionD. Transaction答案:A二、多选题(每题3分,共15分)1. Hibernate中,以下哪些是事务管理的方法?A. beginTransaction()B. commit()C. rollback()D. setRollbackOnly()答案:ABCD2. 在Hibernate中,以下哪些是有效的查询方式?A. HQL(Hibernate Query Language)B. SQLC. Criteria APID. JPQL(Java Persistence Query Language)答案:ACD3. Hibernate中,以下哪些是正确的缓存策略?A. read-onlyB. nonstrict-read-writeC. read-writeD. transactional答案:ABCD4. 在Hibernate中,以下哪些是正确的关联关系?A. OneToOneB. ManyToOneC. OneToManyD. ManyToMany答案:ABCD5. Hibernate中,以下哪些是正确的实体状态?A. transientB. persistentC. detachedD. deleted答案:ABCD三、判断题(每题1分,共5分)1. Hibernate是一个半自动ORM框架。

Hibernate单选题

Hibernate单选题

单选题1.下面不属于持久化的是(a)A.把对象转换为字符串的形式通过网络传输,在另一端接收到这个字符串后能把对象还原出来B.把程序数据从数据库中读出来C.从XML配置文件中读取程序的配置信息D.把程序数据保存为文件23.下面(a )不属于关系—对象映射的映射信息。

A.程序包名到数据库库名的映射B.程序类名到数据库表名的映射C.实体属性名到数据库表字段的映射D.实体属性类型到数据库表字段类型的映射4.使用Hibernate技术实现数据库持久化时,(d)内容不在Hibernate配置文件中。

A. 数据库连接信息B. 数据库类型C. show_sql参数D. 数据库表和实体的映射信息5.数据库表account对应实体类为Account类,以下HQL语句错误的有( d)。

A. select * from AccountB. From AccountC. From Account as modelD. Select * from account6.级联删除时,cascade属性是( c )。

A. allB. saveC. deleteD. save-update7.以下不属于Cascade的属性取值的有( b )。

A. allB. saveC. deleteD. save-update8.关于HQL查询,下列说法中错误的是( A )。

A. HQL查询的select子句中必须区分大小写B. HQL支持统计函数C. HQL支持仅查询对象的某几个属性,并将查询结果保存在Object数组中D. HQL语句可以实现类似于PreparedStatement的效果9.由持久化状态向游离状态转变的方法不包括( C)。

A. 临时状态B. 无引用状态C. 持久化状态D. 游离状态10.关于HQL与SQL,以下哪些说法正确?(B)。

A. HQL与SQL没什么差别B. HQL面向对象,而SQL操纵关系数据库C. 在HQL与SQL中,都包含select,insert,update,delete语句D. HQL仅用于查询和删除数据,不支持insert,update语句11.下面关于Hibernate说法正确的是(BD)。

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

Hibernate练习题1.一般情况下,关系数据模型与对象模型之间有哪些匹配关系(多选)ABCA)表对应类B)记录对应对象C)表的字段对应类的属性D)表之间的参考关系对应类之间的依赖关系2.试述load()和get()的区别。

1.从返回结果上对比:load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常get方法检索不到的话会返回null2.从检索执行机制上对比:get方法和find方法都是直接从数据库中检索而load方法的执行则比较复杂首先查找session的persistent Context中是否有缓存,如果有则直接返回如果没有则判断是否是lazy,如果不是直接访问数据库检索,查到记录返回,查不到抛出异常如果是lazy则需要建立代理对象,对象的initialized属性为false,target属性为null 在访问获得的代理对象的属性时,检索数据库,如果找到记录则把该记录的对象复制到代理对象的target上,并将initialized=true,如果找不到就抛出异常。

hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。

3.简述使用Hibernate完成持3久化操作的3个准备和7个步骤。

1.创建Congfigure对象。

读取并解析配置文件(相当于使用数据源(DataSource)获取连接前读取DataSource的配置文件):Configuration conf=new Configuration().configure();2.读取并解析映射信息,创建SessionFactory(相当于创建了数据源(DataSource)对象),它是产生Session 对象实例的工厂,它是唯一的。

:SessionFactory sf=conf.buildSessionFactory();3.创建Session对象,打开session(相当于JDBC获得数据库的连接):Sessionsession=sf.openSession();4.开始一个事务(增删改必须,查可选):tx=sessionl.beginTransaction();5.持久化操作:session.save(user);6.结束事务:mit();7.关闭session,释放数据库的链接:session.close();三个准备如下:1.需要的jar包2.Hibernate配置文件3.实体类和映射文件注:于JDBC类似,持久化操作要放在try{}语句块中,如果发生异常则将事物回滚。

关闭session的语句放在finally{}语句块中。

4.在持久化层,对象分为哪些状态?(多选)ACDA)临时状态B)独立状态C)游离状态D)持久化状态5.事务隔离级别是由谁实现的?(单选)CA)Java应用程序B)HibernateC)数据库系统D)JDBC驱动程序6.假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况(单选)CSession session=sessionFactory.openSession();tx = session.beginTransaction();Customer customer=(Customer)session.get(Customer.class,new Long(1));mit();session.close();Iterator orderIterator=customer.getOrders().iterator();A)编译出错B)编译通过,并正常运行C)编译通过,但运行时抛出异常7.以下程序代码对Customer的name属性修改了两次:tx = session.beginTransaction();Customer customer=(Customer)session.load(Customer.class,new Long(1));customer.setName(\"Jack\");customer.setName(\"Mike\");mit();执行以上程序,Hibernate需要向数据库提交几条update语句?(单选)BA)0 B)1 C)2 D)38.以下关于SessionFactory的说法哪些正确?(多选)BCA)对于每个数据库事务,应该创建一个SessionFactory对象B)一个SessionFactory对象对应一个数据库存储源。

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

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

D)SessionFactory的load()方法用于加载持久化对象9.Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用哪个元素映射orders属性?AA)<set> B)<one-to-many> C)<many-to-one> D)<property>10.<set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)DA)none B)save C)delete D)save-update11.试述Hibernate有哪些检索方式?HQL检索方式QBC检索方式本地SQL检索方式12.对于以下程序,Customer对象在第几行变为游离状态?(单选)F Customer customer=new Customer(); //line1customer.setName(\"Tom\"); //line2Session session1=sessionFactory.openSession(); //line3Transaction tx1 = session1.beginTransaction(); //line4session1.save(customer); //line4mit(); //line5session1.close(); //line6A) line1 B)line2 C)line3 D)line4E)line5 F)line613.如何优化Hibernate查询性能?1 )lazy=true,hibernate3开始已经默认是lazy=true了;lazy=true时不会立刻查询关联对象,只有当需要关联对象(访问其属性,非id字段)时才会发生查询动作。

2)二级缓存,在对象更新,删除,添加相对于查询要少得多时,二级缓存的应用将不怕n +1 问题,因为即使第一次查询很慢,之后直接缓存命中也是很快的。

14.以下程序的打印结果是什么?Ctx = 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)打印falseC)打印true D)运行通过,但什么都不显示15.下面关于hibernate核心接口说明错误的是?BA)Configuration 接口:配置Hibernate,根据其启动hibernate,创建SessionFactory对象;B)SessionFactory 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存;C)Query 和Criteria 接口:执行数据库的查询;D)Transaction 接口:管理事务。

16.下面代码的执行效果是(A )。

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个学生17.下面(AB )不是Hibernate映射文件中包含的内容。

(选2项)A)数据库连接信息B)Hibernate属性参数C)主键生成策略D)属性数据类型18.下面是某系统中的两个实体类,依次可以得知( B )。

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间存在双向多对一的关联20.下面程序执行后没有报错,但数据总保存不到数据库,最可能的原因是(E)。

public static void main(String[] args){SessionFactory sf =new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Medal medal=new Medal();medal.setOwner("Lily");medal.setSport("Table Tennis-Women 's Singles");medal.setType("Glod Medal");session.save(medal);session.close();}A)没有在配置文件中包含对映射文件的声明B)配置文件配置有误C)映射文件配置有误D)没有对持久化操作捕捉异常E)没有开启事务21.下面(A )不属于关系-对象映射的映射信息。

相关文档
最新文档