Hibernate内部测试-笔试试卷

更新时间:2023-09-28 19:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、选择题(共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(\

medal.setSport(\medal.setType(\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 实体类有如下配置,其中空白处应填入的代码是( )。

______________________

A.

D.

8.某系统中有如下代码片段,执行下面代码可能导致执行的SQL语句不包括( )。

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. B. C.

D.

10.已知系统中TBL_USER 表对应的实体类是TblUser,下列HQL 语句中正确的是 ( )。(选两项)

A.from Tbl_User

B.select * from tbluser

C.select TblUser from TblUser

D.from TblUser t where t.uname = \

11.阅读下面的代码,要输出查询结果中第一条记录的用户名,正确的代码是 ( )。(选两项)

String hql = \

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 = \

Query query = session.createQuery();//<2> query.setNamedParameter(\return query.executeQuery(hql);//<4>

A.第一行中的命名参数“@status”应该是“:status” B.第二行createQuery 函数应该传入hql 作为参数 C.第三行命名参数名称“:status”应该是“status” D.第四行应该是“return query.list(hql);”

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

String hql = \

Query query = session.createQuery(hql); query.setFirstResult(0); query.setMaxResults(5); return query.list();

A.返回分数最高的五个学生 B.返回分数最高的六个学生 C.返回分数最低的五个学生 D.返回分数最低的六个学生

14.下面HQL语句的含义是( )。

select stu

from TblStudent stu

where stu.score > ( select avg(score) from TblStudent )

A.查询所有学生的平均分

B.查询得分大于平均分的学生的成绩 C.查询得分最高的学生

D.查询得分大于平均分的学生

15.以下( )利用了外联结查询。

A.立即加载 B.延迟加载

C.迫切左外联结查询 D.迫切右外联接查询

16.以下程序的打印结果是( )。

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); session.close();

A.运行出错,抛出异常 B.打印false C.打印true

D.无输出

17.假设对Customer 类的orders 集合采用延迟检索策略,编译或运行以下程序,会出现 ( )

Session session=sessionFactory.openSession();

Customer customer=(Customer)session.get(Customer.class,new Long(1)); session.close();

Iterator orderIterator=customer.getOrders().iterator();

A.编译出错

B.编译通过,并正常运行

C.编译通过,但运行时抛出异常 D. 运行时输出“session.open”

18.使用Session 获取命名查询的方法是( )。

A.getNamedQuery() B.getnamedQuery() C.getNameQuery()

D.getNamedSQLQuery()

19.在映射文件中配置命名查询元素的是( )。

A. B.

C. D.

20.选出不是Restrictions方法的选项( )。

A.eq() B.gt() C.like() D.isNULL()

21.与下面代码效果相同的HQL 语句是( )。

Criteria criteria = session.createCriteria(User.class);

criteria.add(Restrictions.like(\List result = criteria.list();

A.from User where name like 'admin%' B.from User where name like '-min%'

C.from name where Restrictions like 'admin%'

D.select u.name from Useras u where u. Restrictions like 'admin%'

22.执行下面代码返回的结果为( )。

Criteria criteria = session.createCriteria(User.class); criteria.addOrder(Order.desc(\

List result = criteria.list();

A.以id降序排列的User对象列表 B.以id升序排列的User对象列表

本文来源:https://www.bwwdw.com/article/8tjd.html

Top