西安软件服务外包学院JAVAEE框架测试题学号班级姓名答题时间答题日期成绩2.5小时一.选择题(每题2分)(1).一般情况下,关系数据模型与对象模型之间有哪些匹配关系(多选)A.表对应类B记录对应对象C表的字段对应类的属性D.表之间的参考关系对应类之间的依赖关系。(2).以下关于SessionFactory的说法哪些正确?(多选)A.对于每个数据库事务,应该创建一个SessionFactory对象B.一个SessionFactory对象对应一个数据库存储源.C.SessionFactory是重量级的对象,不应该随意创建。如果系统中只有一个数据库存储源,只需要创建一个D.SessionFactory的load()方法用于加载持久化对象。(3).Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用哪个元素映射orders属性?A.many-to-onename=”orders”/many-to-oneB.setname=orderskeycolumn=order_id/one-to-manyclass=com.cissst.entity.Order//setC.setname=orderskeycolumn=custermer_id/one-to-manyclass=com.cissst.entity.Customer//setD.listname=orderskeycolumn=orders_id/indexcolumn=position/elementtype=java.lang.Stringcolumn=name//list(4).many-to-one元素有一个cascade属性,如果希望Hibernate级联删除集合中的对象,casecade属性应该取什么值?(单选)A.allB.saveC.deletedD.save-update(5).以下哪些属于Session的方法?A.load()B.save()C.delete()D.update()E.open()F.close()(6).以下程序的打印结果是什么?(单选)tx=session.beginTransaction();Customerc1=(Customer)session.load(Customer.class,newLong(1));Customerc2=(Customer)session.load(Customer.class,newLong(1));System.out.println(c1==c2);tx.commit();session.close();A.运行出错,抛出异常B.打印falseC.打印trueD.无结果(7).以下程序代码对Customer的name属性修改了两次:tx=session.beginTransaction();Customercustomer=(Customer)session.load(Customer.class,newLong(1));customer.setName(\Jack\);customer.setName(\Mike\);tx.commit();执行以上程序,Hibernate需要向数据库提交几条update语句?(单选)A.0B.1C.2D.3(8).在持久化层,对象分为哪些状态?(多选)A.临时状态B.独立状态C.游离状态D.持久化状态(9).对于以下程序,Customer对象在第几行变为持久化状态?(单选)Customercustomer=newCustomer();//line1customer.setName(\Tom\);//line2Sessionsession1=sessionFactory.openSession();//line3Transactiontx1=session1.beginTransaction();//line4session1.save(customer);//line4tx1.commit();//line5session1.close();//line6A.line1B.line2C.line3D.line4E.line5F.line6(10).对于以下程序,Customer对象在第几行变为游离状态?(单选)Customercustomer=newCustomer();//line1customer.setName(\Tom\);//line2Sessionsession1=sessionFactory.openSession();//line3Transactiontx1=session1.beginTransaction();//line4session1.save(customer);//line4tx1.commit();//line5session1.close();//line6A.line1B.line2C.line3D.line4E.line5F.line6(11).以下哪一种查询略利用了外连结查询?(单选)A.立即查询B.延迟查询C.左外连结查询D.createQuery()(12).关于HQL与SQL,以下哪些说法正确?(多选)A.HQL与SQL没什么差别B.HQL面向对象,而SQL操纵关系数据库C.在HQL与SQL中,都包含select,insert,update,delete语句D.HQL仅用于查询数据,不支持insert,update和delete语句(13).事务隔离级别是由谁实现的?(单选)A.Java应用程序B.HibernateC.数据库系统D.JDBC驱动程序(14).悲观锁与乐观锁,哪个具有较好的并发性能?(单选)A)悲观锁B)乐观锁(15).hibernate的session是介于下面那个选项之间(多选)A.transactionB.connectionC.collectionD.commit()(16).下列哪个选项属于struts1.x的控制器类(多选)A.ActionB.DispatchActionC.ActionServletD.LookUpDispatchActionE.Servlet(17).下列哪个选项属于struts1.x的ActionServlet请求时的路径(多选)A*.doB/do/*C*actionD/*E/***/(18).Sping中要实现配置量减少我们使用自动装配机制,以下选项哪个不是实现自动装配选项的是A.byNameB.byTypeC.constructorD.autodetectF.autowire(19).下面选项中那些属于spring的注入方式(多选)A.接口注入B构造方法注入C设置注入Dget方法注入(20).下面选项中那些选项为spring对持久层的封装A.jdbcB.hibernateC.ibatisD.topLinkF.strutsE.webWork(21).下列选项中那些是spring容器中bean的管理者?ABeanFactoryB.SessionFactoryCApplicationContextDSession二.改错题(每题3分)1.下边是ssh集成后spring配置文件中的几行代码,分别配有数据访问层,业务逻辑层,数据展现层。请同学们检查以下代码那些配置的是否正确的,应该怎样改正。(提示:本代码两处错误)beanid=hibernateTemplateclass=org.springframework.orm.hibernate3.HibernateTemplatepropertyname=sessionFactoryref=sessionFactory//bean!--数据访问层DAO--beanid=baseDaoImpclass=com.cissst.daoImp.BaseDaoImp/!--业务逻辑层的描述--beanid=baseBoImpclass=com.cissst.boImp.BaseBoImppropertyname=baseDaoref=baseDaoImp/property/bean!--数据展现层--beanname=baseActionclass=com.cissst.action.BaseActionpropertyname=baseBoref=baseBoImp/2.下边是使用struts1.x时web.xml文件代码,请同学们检查以下代码那些配置的是否正确的,应该怎样改正(提示:本代码两处错误)servletservlet-nameaction/servlet-nameservlet-classorg.apache.struts.action.HttpServlet/servlet-classinit-paramparam-nameconfig/param-nameparam-value/WEB-INF/struts-config.xml/param-value/init-param/servletservlet-mappingservlet-nameaction/servlet-nameurl-pattern*/url-pattern/servlet-mapping3.在使用hibernate持久化时我们通常编写如下代码,请同学们检查以下代码那些配置的是否正确的,应该怎样改正。(提示:本代码一处错误)publicvoidsave(Usersuser){Configurationcfg=newConfiguration();SessionFactoryfactory=cfg.buildSessionFactory();Sessionsession=factory.openSession();try{session.beginTransaction().begin();session.save(user);}catch(HibernateExceptione){session.getTransaction().rollback();e.printStackTrace();}finally{if(session!=null){if(session.isOpen()){session.close();}}}}4.在使用struts的控制器时往往在实际开发中用户定义的类继承DispatchAction这个类,现有一用户在做登录时就继承了此类,但是系统运行时控制台打印“方法找不到英文字样”,这样的错误,请问以下代码怎样修改才能正确运行(提示:本代码一处错误)。actionpath=/baseActiontype=com.cissst.action.BaseActionscope=request/action5.在hibernate的类映射文件中,某用户在检查映射文件时发现什么都配置正确,但是使用hibernate映射工具类时,怎么映射就是不生成数据库中的表,请问以下代码如何修改,才能成功映射(提示:本代码一处错误)classname=com.cissst.entity.TbUserstable=Useridname=idtype=java.lang.Integercolumnname=idcolumn=tb_id/generatorclass=native//idpropertyname=usernametype=java.lang.Stringcolumnname=username//propertypropertyname=passwordtype=java.lang.Stringcolumnname=password//property/class三.简答题(每题3分)1.谈谈Struts的工作原理以及St