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内部测试笔试题
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接口绑定参数的方法,说法正确的是()。
(完整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> ________。
Spring,hibernate,struts的面试笔试题
Spring,hibernate,struts的面试笔试题一、H ibernate工作原理及为什么要用?原理:1. 读取并解析配置文件2. 读取并解析映射信息,创建SessionFactory3. 打开Sesssion4. 创建事务Transation5. 持久化操作6. 提交事务7. 关闭Session8. 关闭SesstionFactory为什么要用:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。
他很大程度的简化DAO层的编码工作3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4. hibernate的性能非常好,因为它是个轻量级框架。
映射的灵活性很出色。
它支持各种关系数据库,从一对一到多对多的各种复杂关系。
二、H ibernate是如何延迟加载?1. Hibernate2延迟加载实现:a)实体对象b)集合(Collection)2. Hibernate3 提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。
三、H ibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、四、说下Hibernate的缓存机制1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事务级缓存2. 二级缓存:a) 应用及缓存b) 分布式缓存条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非关键数据c) 第三方缓存的实现五、H ibernate的查询方式Sql、Criteria, Object comptositionHql:1. 属性查询2. 参数查询、命名参数查询3. 关联查询4. 分页查询5. 统计函数六、如何优化Hibernate?1. 使用双向一对多关联,不使用单向一对多2. 灵活使用单向一对多关联3. 不用一对一,用多对一取代4. 配置对象缓存,不使用集合缓存5. 一对多集合使用Bag,多对多集合使用Set6. 继承类使用显式多态7. 表字段要少,表关联不要怕多,有二级缓存撑腰七、S truts工作机制?为什么要使用Struts?工作机制:Struts的工作流程:在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象当ActionServlet接收到一个客户请求时,将执行如下流程.1. 检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;2. 如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;3. 根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;4. 如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;5. ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法; 6. Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;7. ActionForward对象指向JSP组件生成动态网页,返回给客户;为什么要用:JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。
Hibernate笔试题
1) 在三层结构中,数据访问层承担的责任是(B)〔选一项〕a) 定义实体类b) 数据的增删改查操作c) 业务逻辑的描述d) 页面展示和控制转发2) 下面关于数据持久化概念的描述,错误的是(D〔选择一项〕a) 保存在内存中数据的状态是瞬时状态b) 持久状态的数据在关机后数据依然存在c) 数据可以由持久状态转换为瞬时状态d) 将数据转换为持久状态的机制称为数据持久化3) 下面关于Hibernate的说法,错误的是(C)〔选择一项〕a) Hibernate是一个“对象-关系映射”的实现b) Hibernate是一种数据持久化技术c) Hibernate是JDBC的替代技术d) 使用Hibernate可以简化持久化层的编码4) Hibernate配置文件中,不包含下面的(AB)〔选择二项〕a) “对象-关系映射”信息b) 实体间关联的配置c) show_sql等参数的配置d) 数据库连接信息5) 在Hibernate关系映射配置中,inverse属性的含义是(B)。
〔选择一项〕a) 定义在<one-to-many>节点上,声明要负责关联的维护b) 声明在<set>节点上,声明要对方负责关联的维护c) 定义在<one-to-many>节点上,声明对方要负责关联的维护d) 声明在<set>节点上,声明要负责关联的维护6) 在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是(B。
〔选择一项〕a) 配置客户和订单关联的cascade属性为save-updateb) 配置客户和订单关联的cascade属性为allc) 设置多对一关联的inverse属性为trued) 设置多对一关联的inverse属性为false7) 下面一对多关联的配置中,存在哪些错误(BD)。
<set name="orders" inverse="false" cascade="true"><one-to-many class="com.scce.pojo.Order"column="customer_id" /></set>a) inverse属性不可以设置为falseb) cascade属性不可设置为truec) class="com.scce.pojo.Order"应为type="com.scce.pojo.Order"d) column属性不可再<one-to-many>节点内设置8) 执行下面的hql查询,关于返回值的说法,正确的是(B)。
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对象从瞬时到持久状态转换的方式有()。
hibernet面试笔试题
11. Hibernate介绍Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query 和Configuration。
这5个核心接口在任何开发中都会用到。
通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
下面对这五个核心接口分别加以介绍。
•Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。
)。
但需要注意的是Session对象是非线程安全的。
同时,Hibernate的session不同于JSP应用中的HttpSession。
这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。
•SessionFactory接口:SessionFactroy接口负责初始化Hibernate。
它充当数据存储源的代理,并负责创建Session对象。
这里用到了工厂模式。
需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
•Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory 对象。
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试题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考试试题(题库)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考试题带答案
西北农林科技大学本科课程考试试题(卷)2012—2013学年第1学期《J2技术》课程A卷专业班级:命题教师:审题教师:学生姓名:学号:考试成绩:本试卷由笔试和机试两部分组成。
一到三题为笔试部分,第四题为机试部分一、选择题(每题3分【按空分配分数】,共30分)得分:分1. 相比于,基于的技术作为企业级应用解决方案的主要优势体现在(),使得开发出的应用是可向外伸缩的()。
A. 安全性B. 运行的时空效率C. 事务处理能力D. 支持分布的能力企业级的与普通的区别是企业级的不仅可以供本地客户端访问,还可以供远程客户端访问。
本质区别是访问者和被访问者是否位于同一台虚拟机上。
2.消息服务( ) 与方法调用( )两者的最大区别就是:消息服务还可以实现()、()以与异构系统集成。
消息服务()是一个消息标准,它允许应用程序组件生成、发送、接收和读取消息。
它能够进行分布式的、松耦合的、可靠地、异步的信息交流。
A. 异步B. 业务调用C. 松耦合D. 消息传递3. 关于无状态会话和有状态会话中“状态”说法正确的是()。
A. 有状态会话实例有对应的生命周期,而无状态会话则没有B. 有状态会话可维持同一个客户端的多个调用之间的状态信息,无状态会话则不能C. 有状态会话可以实现业务对象的持久化,无状态会话不能D. 有状态会话可以维护客户端的状态,无状态会话不能4.实体之间的关系包括一对一、多对多、(对多一)和(一对多)共四种关联关系,以与( D )关系。
持久化,实体类表示对象,是对数据库中记录的表示A. 一对多B. 多对一C. 继承D. 映射5. 判断访问的方式是本地() 访问还是远程() 访问取决于访问客户端和是否位于()或者()。
A. 同一台计算机B. 同一个( , 虚拟机)C. 同一个网络D. 同一个进程6. 采用实体完成对象/关系的持久性映射(, )。
其中,一个实体类对应关系数据库的零或一个( A ),一个实体实例对象对应到关系数据库中的一个( B )。
题库
考试题库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&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练习题
问答题:
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。
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:使用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 )。
J2EE考试题目及答案
J2EE简答题1、简述J2EE的四层模型。
运行在客户端机器上的客户层组件;运行在J2EE效劳器上的Web层组件;运行在J2EE效劳器上的业务逻辑层组件;运行在EIS效劳器上的企业信息系统层软件2、什么是对象持久化?即把数据〔如存中的对象〕保存到可永久保存的存储设备中〔如磁盘〕。
持久化的主要应用是将存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。
3、简述一下ORMAPPING,为什么我们使用它?ORM(Object Relational Mapping)是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。
简单说:ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据中。
本质上就是将数据从一种形式转换到另外一种形式。
原因:用它来架起对象和关系型数据库的桥梁,可解决对象层次的映射、对象关系的映射以及对象的持久化问题。
4、简述一下如何使用Hibernate实现对象持久化的过程〔可画图或用伪码描述〕STEP 1:创立Configuration对象。
在这一步中主要为了进展配置文件的装载操作,读取所有的配置文件并进展解析、STEP 2: 创立SessionFactory对象。
通过创立好的Configuration对象可以创立一个sessionFactory对象的实例,同时是生成Session对象实例的工厂,他在整个应用中应该是,唯一的。
STEP 3:创立Session对象。
Session对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接,但是他的功能要比JDBC中的Connection对象丰富很多。
STEP 4:开场一个事务。
在Java中定义一个事务操作的开场,这是使用Hibernate进展持久化操作必不可少的步骤STEP 5:进展持久化操作。
在这个步骤中可以读取或者保存Java对象。
STEP 6:完毕事务。
在操作完成之后还要进展显式的完毕事务的操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《使用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.下面是某系统中的两个实体类,依此可以得知()。
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间存在双向多对一的关联7.对第2题中的WageItem 实体类有如下配置,其中空白处应填入的代码是()。
<class name="WageItem" table="fin_wage_item"><id name="iid" column="wi_id" type="ng.Long"><generator class="native" /></id><property name="itemName" column="wi_name"type="ng.String" /><property name="amount" column="wi_amount"type="ng.Double" /><!--配置wage 属性-->______________________</class>A.<many-to-one name="wage" column="wi_wage_id" class="Wage" />B.<one-to-many name="wage" column="wi_wage_id" class="Wage" />C.<set name="wage"><key column="wi_wage_id" /><one-to-many class="Wage" /></set>D.<set name="wage"><key column=" wi_wage_id" /><many-to-one class="Wage" /></set>8.某系统中有如下代码片段,执行下面代码可能导致执行的SQL语句不包括()。
<set name="items" inverse="true"><key column="wi_wage_id/><one-to-many class="WageItem" /></set>Wage wage = (Wage)session.get(Wage.class,1L);WageItem item = (WageItem)session.get(WageItem.class,1L);wage.getItems().remove(item);session.update(wage);A.select w0_.id, w0_.emp_name, w0_.month from fin_wage w0_ where w0_.id=?B.select i0_.wi_id, i0_.wi_name, i0_.wi_amount,i0_.wi_wage_id from fin_wage_item i0_ where i0_.wi_id=?C.delete from fin_wage_item where wi_id=?D.update fin_wage_item set wi_wage_id = null where wi_id=?9.已知wage.getItem().size()的值是1,要想使执行session.update(wage)时自动执行session.update(wage.getItems().get(0)),必须配置()。
A.<set name="items" inverse="true" cascade="none">……</set>B.<set name="items" inverse="false" cascade="none">……</set>C.<set name="items" inverse="true" cascade="all">……</set>D.<set name="items" inverse="false" cascade="save-update">……</set>10.已知系统中TBL_USER 表对应的实体类是TblUser,下列HQL 语句中正确的是()。
(选两项)A.from Tbl_UserB.select * from tbluserC.select TblUser from TblUserD.from TblUser t where t.uname = "15"11.阅读下面的代码,要输出查询结果中第一条记录的用户名,正确的代码是()。
(选两项)String hql = "select u.uname, u.upass from TblUser u";Query query = session.createQuery(hql);A.Object[] arr = (Object[])query.list().iterator().next();System.out.println(arr[0]);B.TblUser user = (TblUser)query.list().get(0);System.out.println(user.getUname());C.String uname = (String)query.list().get(0).get(0);System.out.println(uname);D.String uname = (String)query.list().get(0)[0];System.out.println(uname);12.对下面代码中存在的错误,说法不正确的是()。
String hql = "from TblUser u where u.status = @status ";//<1> Query query = session.createQuery();//<2>query.setNamedParameter(":status","");//<3>return query.executeQuery(hql);//<4>A.第一行中的命名参数“@status”应该是“:status”B.第二行createQuery 函数应该传入hql 作为参数C.第三行命名参数名称“:status”应该是“status”D.第四行应该是“return query.list(hql);”13.下面代码的执行效果是()。
String hql = "from TblStudent s order by s.score asc";Query query = session.createQuery(hql);query.setFirstResult(0);query.setMaxResults(5);return query.list();A.返回分数最高的五个学生B.返回分数最高的六个学生C.返回分数最低的五个学生D.返回分数最低的六个学生14.下面HQL语句的含义是()。