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接口绑定参数的方法,说法正确的是()。

(完整word版)J2EE考试复习试题_struts2_spring_hibernate(答案整合完毕)

(完整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的面试笔试题

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笔试题

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含答案要点

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面试笔试题

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考试试卷

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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语句的含义是()。

相关文档
最新文档