学号
班级
姓名
答题时间
答题日期
成绩
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-one name=”orders”></many-to-one>
B. <set name=”orders”>
<key column=”order_id”/>
<one-to-many/>
</set>
C .<set name=”orders”>
<key column=”custermer_id”/>
<one-to-many/>
</set>
D.<list name=”orders” > <key column=”orders_id”/> <index column=”position”/> <element type=”java.lang.String” column=”name”/> </list>
(4).many-to-one元素有一个cascade属性,如果希望Hibernate级联删除集合中的对象,casecade属性应该取什么值?(单选)
A.all B.save C.deleted D.save-update
(5).以下哪些属于Session的方法?
A.load() B.save() C.delete() D.update() E.open() F.close()
(6).以下程序的打印结果是什么?(单选)
tx = 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);
tx.commit();
session.close();
A.运行出错,抛出异常 B.打印false C.打印true D.无结果
(7). 以下程序代码对Customer的name属性修改了两次:
tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class, new Long(1));
customer.setName(“Jack”);
customer.setName(“Mike”);
tx.commit();
执行以上程序,Hibernate需要向数据库提交几条update语句?(单选)
A.0 B.1 C.2 D.3
(8). 在持久化层,对象分为哪些状态?(多选)
A.临时状态B.独立状态C.游离状态D.持久化状态
(9). 对于以下程序,Customer对象在第几行变为持久化状态?(单选)
Customer customer=new Customer(); //line1
customer.setName(“Tom”); //line2
Session session1=sessionFactory.openSession(); //line3
Transaction tx1 = session1.beginTransaction(); //line4
session1.save(customer); //line4
tx1.commit(); //line5
session1.close(); //line6
A. line1 B.line2 C.line3 D.line4 E.line5 F.line6 (10).对于以下程序,Customer对象在第几行变为游离状态?(单选)
Customer customer=new Customer(); //line1
customer.setName(“Tom”); //line2
Session session1=sessionFactory.openSession(); //line3
Transaction tx1 = session1.beginTransaction(); //line4
session1.save(customer); //line4
tx1.commit(); //line5
session1.close(); //line6
A. line1 B.line2 C.line3 D.line4 E.line5 F.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.Hibernate C.数据库系统 D.JDBC驱动程序
(14). 悲观锁与乐观锁,哪个具有较好的并发性能?(单选)
A)悲观锁 B)乐观锁
(15).hibernate的session是介于下面那个选项之间(多选)
A. transaction B. connection C.collection D.commit()
(16).下列哪个选项属于struts1.x的控制器类(多选)
A.Action B.DispatchAction C.ActionServlet D.LookUpDispatchAction E.Servlet
(17). 下列哪个选项属于struts1.x的ActionServlet请求时的路径(多选)
A *.do B /do/* C *action D /* E /***/
(18). Sping中要实现配置量减少我们使用自动装配机制,以下选项哪个不是实现自动装配选项的是
A .byName B. byType C. constructor D. autodetect F.autowire
(19). 下面选项中那些属于spring的注入方式(多选)
A.接口注入 B构造方法注入 C 设置注入 D get方法注入
(20). 下面选项中那些选项为spring对持久层的封装
A .jdbc B. hibernate C .ibatis D. topLink F. struts E. webWork
(21). 下列选项中那些是spring容器中bean的管理者?
A BeanFactory B.SessionFactory C ApplicationContext D Session
二.改错题(每题3分)
1.下边是ssh集成后spring配置文件中的几行代码,分别配有数据访问层,业务逻辑层,数据展现层。请同学们检查以下代码那些配置的是否正确的,应该怎样改正。(提示:本代码两处错误)
<bean id=”hibernateTemplate” >
<property name=”sessionFactory” ref=”sessionFactory”/>
</bean>
<!–数据访问层DAO–>
<bean id=”baseDaoImp”/>
<!–业务逻辑层的描述–>
<bean id=”baseBoImp”>
<property name=”baseDao” ref=”baseDaoImp”></property>
</bean>
<!–数据展现层–>
<bean name=”baseAction”>
<property name=”baseBo” ref=”baseBoImp”/>
2.下边是使用struts1.x时web.xml文件代码,请同学们检查以下代码那些配置的是否正确的,应该怎样改正(提示:本代码两处错误)
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.HttpServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>* </url-pattern>
</servlet-mapping>
3.在使用hibernate持久化时我们通常编写如下代码,请同学们检查以下代码那些配置的是否正确的,应该怎样改正。(提示:本代码一处错误)
public void save(Users user)
{
Configuration cfg=new Configuration();
SessionFactory factory= cfg.buildSessionFactory();
Session session=factory.openSession();
try {session.beginTransaction().begin();
session.save(user);
} catch (HibernateException e) {
session.getTransaction().rollback();
e.printStackTrace();
}finally{
if(session!=null)
{
if(session.isOpen())
{
session.close();
}
}
}
}
4. 在使用struts的控制器时往往在实际开发中用户定义的类继承DispatchAction这个类,现有一用户在做登录时就继承了此类,但是系统运行时控制台打印“方法找不到英文字样”,这样的错误,请问以下代码怎样修改才能正确运行(提示:本代码一处错误)。
<action
path=”/baseAction”
type=”com.cissst.action.BaseAction”
scope=”request”
>
</action>
5.在hibernate的类映射文件中,某用户在检查映射文件时发现什么都配置正确,但是使用hibernate映射工具类时,怎么映射就是不生成数据库中的表,请问以下代码如何修改,才能成功映射(提示:本代码一处错误)
<class name=”com.cissst.entity.TbUsers” table=”User” >
<id name=”id” type=”java.lang.Integer”>
<column name=”id” column=”tb_id” />
<generator />
</id>
<property name=”username” type=”java.lang.String”>
<column name=”username” />
</property>
<property name=”password” type=”java.lang.String”>
<column name=”password” />
</property>
</class>
三.简答题(每题3分)
1.谈谈 Struts的工作原理 以及Struts优点与缺点。
2.简述struts的工作流程。
3.谈谈你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用。
4谈谈hibernate中什么是对象关系映射?为什么要使用对象关系映射。
5.说说你对spring的IOC的理解。
6.说说你对springAOP的理解
四.机试题(机试30分)
某公司某部门招聘员工,该公司对员工的工资等级规定是不一样的,有工作经验工资等级5000,本科工资等级
3000,专科生工资等级2000
要求:
(1) 根据客户以上描述将有用的信息抽象出来,利用数据建模工具建模(建立数据库表的物理模型)(5分)。
(2) 根据以前所学的框架知识,利用struts1.x/struts2/hibernate+spring集成对数据库进行增
删改查操作。(10分)
(2.1).对单表操作或多表操作都可以(1-5分)。
(3).如能实现其它相应功能适当加分(1-10分)例如:分页,条件查询或多表操作等
(4).机试为3个小时,并在同学们演示的过程中给出成绩。
评论列表
文章目录