`
aihhd2008
  • 浏览: 25545 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java 面试经典 03--Database

阅读更多
MySQL、SQLServer、Oracle
为了防止一个用户的工作不适当地影响另一个用户,应该采取下面的哪一种控制?(单选)
完整性控制
安全性控制 
并发控制
访问控制
考点:数据库的控制    (C)

在MS SQL Server中,用来显示数据库信息的系统存储过程是下面的哪一个?(单选)
sp_ dbhelp 
sp_db
sp_help
sp_helpdb
考点:sqlServer命令  (D)

SQL语言中,下面的命令中,哪一个是删除数据库中的一个表的?  (单选)
delete
drop
remove
clear
考点:sqlServer的常用命令   (B)

设有一个关系:dept(dno,dname),如果要找出倒数第三个字母为w,并且至少包含4个字母的dname,则查询条件子句应写成where dname like?(单选)
‘_ _ W _ %’
‘_ % W _ _’
‘_ W _ _’
‘_ W _ %’
考点:数据库的语法  (B) 

SQL语言中,用于事务回滚的语句是_________。
考点:sqlserver的语法 (rollback)

在ORACLE中的物理文件包含哪四种?
数据文件   扩展名为*.dbf
控制文件    扩展名为*.rtl
配置文件    扩展名为*ora
日志文件    扩展名为*.dbf
数据文件   扩展名为*.mbf
考点:oracle物理文件的后缀名(ABCD)

Oracle 数据库中,通过()访问能够以最快的方式访问表中的一行。
主键
Rowid
唯一索引
整表扫描
考点:oracle  --> rowid (B)

在Oracle中,事务中使用下列SQL语句不会引起锁定
SELECT
 INSERT
UPDATE
DELETE
SELECT…FOR UPDATE
考点:oracle锁机制(A)

在Oracle中,当需要使用显式游标更新或删除游标中的行时,声明游标时指定的SELECT语句必须带有()子句
WHERE CURRENT OF
 INTO
FOR UPDATE
ORDER BY
考点:Oracle游标的声明(C)

 在Oracle中,有一个名为seq的序列对象,以下语句能返回序列值但不会引起序列值增加的是:
select seq.ROWNUM from dual;
select seq.ROWID from dual;
select seq.CURRVAL from dual;
 select seq.NEXTVAL from dual;
考点:Oracle序列号(C)
数据定义语言是用于()的方法。
确保数据的准确性
 定义和修改数据结构
查看数据
删除和更新数据
考点:考点:数据定义语言的概念 (B)

()函数通常用来计算累计排名,移动平均数和报表聚合等
汇总
分析
分组
单行
考点:数据库函数 (B)

锁用于提供()
改进的性能
数据的完整性和完整性
可用性和易于维护
用户安全
考点:锁的作用 (B)

带有(B)字句的select语句可以在表的一行或多行上放置排他锁
 FOR INSERT
FOR UPDATE
 FOR DELETE
FOR REFRESH
考点:Oracle排他锁 (B)

可以使用()伪列来访问序列
 CURRVAL 和NEXTVAL。
 NEXTVAL 和 PREVAL。
 CACHE 和 NOCACHE。
 MAXVALUE 和 MINVALUE。
考点:Oracle序列号的用法 (A)

带有错误的视图可以使用()选项来创建。
FORCE。
WITH CHECK OPTION
CREATE VIEW WITH ERROR。
CREATE ERROR VIEW。
考点:创建带有错误的视图 (A)

 在连接视图中,当(B)时,表被称为键保留表。
基表的主键不是结果集的主键
基表的主键是结果集的主键
基表的主键是结果集的外键
基表的主键不是结果集的外键
考点:保留表的概念 (B)

ORACLE中,执行语句: SELECT address1||','||address2||','||address2 "Adress" FROM employ;  将会返回()列。(选择一项)
 0
 1
 2
3
4
考点:Oracle查询语句(字段的连接) (B)

Oracle数据库中,下面()可以作为有效的列名
Column
123_NUM
NUM_#123
 #NUM123
考点:Oracle有效列名 (C)

 Oracle数据库中,以下()函数可以针对任意数据类型进行操作
TO_CHAR
 LOWER
 MAX
CEIL
考点:Oracle函数 (C)

 在Oracle中,PL/SQL块中定义了一个带参数的游标:CURSOR emp_cursor(dnum NUMBER) ISSELECT sal, comm FROM emp WHERE deptno = dnum;那么正确打开此游标的语句是()。(选择两项)
 OPEN emp_cursor(20);
OPEN emp_cursor FOR 20;
OPEN emp_cursor USING 20;
FOR emp_rec IN emp_cursor(20) LOOP … END LOOP;
考点:Oracle游标 (AD)

在Oracle中,关于触发器的描述正确的是(C)。(选择一项)
触发器可以删除,但不能禁用
触发器只能用于表
触发器可以分为行级和语句级
触发器是一个对关联表发出select、insert、update或delete语句时触发的存储过程
考点:Oracle触发器 (C)

Jmock,junit,dbunit测试题
mock对象使用的范围,下面哪一个是不正确的?(单选)
真实对象具有不可确定的行为,产生不可预测的效果。
真实对象很难被创建的
真实对象的某些行为很难被触发
真实对象实际上还不存在的(和其他开发小组或者和新的硬件打交道) 等等...
在被测试代码中只是通过接口来引用对象,所以它不知道这个引用的对象是真实对象还是mock对象。
考点:jmock的使用范围  (E)

mock对象测试的关键步骤,下面哪些描述是错误的?(多选)
在产品代码中实现这个接口
在测试代码中实现这个接口
在被测试代码中只是通过接口来引用对象,所以它不知道这个引用的对象是真实对象还是mock对象。
使用一个类来描述这个对象
真实对象实际上还不存在的.
考点:jmock的使用  (DE)

测试类的命名规则是以下的哪一种: (单选)
Test+被测试类的类名
被测试类的类名+test
test+被测试类的类名
被测试类的类名+Test
考点:junit命名规范  (D)

使用junit测试粒度的原则是:  (多选)
被测试类中所有public、protected方法都要测到。
被测试类中的所有方法都需要测试。
对于简单的get和set方法就不必测试。
一些无意义的方法就不必测试。
考点:junit的测试使用 (AC)

Dbunit的原理是: (多选题)
数据库表里的数据和自己定义的xml文件里表示的数据关联起来
数据库表里的数据可以导出到一个对应的xml里
数据库表里的数据可以和xml文件里的数据并非一致。
可以将一个xml里的数据导入到数据库表里
考点:dbunit的原理  (ABD)


Hiberante测试题
以下关于SessionFactory的说法哪些正确?(多选)
对于每个数据库事务,应该创建一个SessionFactory对象
一个SessionFactory对象对应一个数据库存储源
SessionFactory是重量级的对象,不应该随意创建。如果系统中只有一个数据库存储源,只需要创建一个
SessionFactory的load()方法用于加载持久化对象
考点:SessionFactory (B C)

以下哪些属于Session的方法? (多选)
load()
save()
delete()
update()
open()
close()
考点:Session API  (A B C D F)

在持久化层,对象分为哪些状态?(多选)
临时(瞬时)状态
独立状态
游离(脱管)状态
持久化状态
考点:持久化对象生命周期 (A C D)

持久化状态的特征,下面说法正确的是: (多选)
总是被Session示例关联
持久化对象和数据库中的相关记录对应
Session在清理缓存时,会根据持久化对象的属性变化,来同步更新数据库
当一个持久化对象关联一个临时对象,在允许级联保存的情况下,Session在清理缓存时会把这个临时对象也转变为持久化对象
Hibernate保证在同一个Session示例的缓存中,数据库表中的每条记录只对应唯一的持久化对象
考点:持久化状态的特征 (A B C D E F)

以下程序的打印结果是什么?(单选) 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();
运行出错,抛出异常
打印false
打印true
考点:持久化状态的特征  (C)

以下程序代码对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语句?(单选)
0
1
2
3
考点:持久化状态的特征  (B)

Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用哪个元素映射orders属性?(单选)
<set>
<one-to-many>
<many-to-one>
<property>
考点:映射文件 (A)

<set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)
none
save
delete
save-update
考点:映射文件 (D)

在pojo包下User类中有个Passport类型的passport属性,Passport类中有User类型的user属性,请在空白处写出主键关联和外键关联2种映射方式映射(使用Mysql数据库)
User.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="pojo">
<class name="User" table="uf_user">
<id name=”id”>
<generator class=”native”/>
</id>
<!-— 此处编写 -->

</class>
</hibernate-mapping>

Passport.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="pojo">
<class name=" Passport " table="uf_passport">
<!-— 此处编写 -->



</class>
</hibernate-mapping>

考点:一对一映射(主键映射、外键映射)
答案:
主键映射
User.hbm.xml
<one-to-one name=“passport”
class=”pojo.Passport”
/>

  Passport.hbm.xml
<id name=”name”>
<generator class=”foreign”>
<param name=”property”>user</param>
</generator>
</id>
<one-to-one name=”user” constrained=”true” class=”pojo.User”/>

外键映射
User.hbm.xml
<many-to-one name=”passport”
Class=”pojo.Passport”
/>

Passport.hbm.xml
<one-to-one name=”user”
class=”pojo.User”
property-ref=”passport”/>

假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况(单选) Session session=sessionFactory.openSession(); tx = session.beginTransaction(); Customer customer=(Customer)session.get(Customer.class,new Long(1)); tx.commit(); session.close(); Iterator orderIterator=customer.getOrders().iterator();
编译出错
编译通过,并正常运行
编译通过,但运行时抛出异常
考点:延迟加载  (C)
以下哪一种检索策略利用了外连结查询?(单选)
立即检索
延迟检索
迫切左外连结检索
考点:检索策略 (C)

关于HQL与SQL,以下哪些说法正确?(多选)
A)HQL与SQL没什么差别
HQL面向对象,而SQL操纵关系数据库
在HQL与SQL中,都包含select,insert,update,delete语句
HQL仅用于查询数据,不支持insert,update和delete语句
考点:HQL与SQL的区别 (B D)

事务隔离级别是由谁实现的?(单选)
Java应用程序
Hibernate
数据库系统
JDBC驱动程序
考点:事务 (C)

悲观锁与乐观锁,哪个具有较好的并发性能?(单选)
悲观锁
乐观锁
考点:悲观锁与乐观锁 (B)
下面哪些情况不适合加载到二级缓存中
经常被修改的数据
绝对不允许出现并发访问的重要数据
与其他应用共享的数据
不会被第三方修改的数据
考点:二级缓存中应存放的数据 (D)

Session中load方法与get方法的区别 (多选)
记录不存在时,get()方法会返回空(null),而load()方法会抛出一个HibernateException异常。
load()方法可以返回实体的代理类实例,而get()方法永远都直接返回实体类。
load()方法可以充分利用Hibernate的内部缓存和二级缓存中的现有数据,而 get()方法则仅仅在hibernate内部缓存中进行数据查找,如果内部缓存中没有找到相应的数据,那么将直接执行SQL语句进行数据查询,并生成相应的实体对象。
记录不存在时,load ()方法会返回空(null),而get ()方法会抛出一个HibernateException异常。
考点:load与get方法的区别 (A B C)

  下面对Hibernate中Query.list与Query.iterate的说法正确的是 (多选)
list: 结果存入缓存,但不从缓存里面取
list: 查询时属性连同id一起找出来,只有“一句”select
iterate: 结果存入缓存,并在缓存中查找结果
iterate: 查询时先找出所有的 id,然后根据 id 到缓存里面查找,如果没有命中,再到数据库中查找该id对应的其他属性。可能会有多行 select
考点:Query.list与Query.iterate (A B C D)

以下查询颜色为”白色”的猫的代码正确的是(多选)
String hql = "from Cat where color like :color";
session.createQuery(hql).setString("color",
"白色").list();
String hql = "from Cat c where c.color like ? ";
session.createQuery(hql).setString(0,
"白色").list();
session.createCriteria(Cat.class).add(Expression.eq("color","白色")).list();
session.createCriteria(Classes.class).add(Restrictions.eq("color", "白色")).list()
考点:HQL 、Criteria (A B C D)

hibernate继承映射3中基本策略使用标签正确的是 (多选)
每个类分层结构一张表 -- <subclass>
每个子类一张表 -- <joined-subclass>
每个类分层结构一张表 -- <union-subclass>
每个具体类一张表 -- <union-subclass>
考点:继承映射 (A B D)
在映射文件中定义二级缓存的标签是: (单选)
<cache usage=""/>
<class-cache class="" usage=""/>
<cache-class class="" usage=""/>
考点:定义二级缓存 (A B)

Hibernate支持哪3种缓存策略: (多选)
Transactional
read-write
nonstrict-read-write
read-only
考点:hibernate支持的3中缓存策略

hibernate一级缓存和二级缓存的交换模式: (多选)
CacheMode.GET
CacheMode.NORMAL
CacheMode.PUT
CacheMode.POST
考点:一级缓存与二级缓存的交换模式

Hibernate中类的lazy加载策略说法正确的是: (多选)
当类采用lazy加载策略时,load方法不发出SQL语句,查询对象的ID时也不会发出,只有第一次获取对象的其他属性时才会发出SQL语句
在同一个Session中再次查询该对象时,由于缓存中有该对象,所有不会发出SQL语句
lazy加载策略只在Session打开期间是有效的
类默认采用lazy加载策略,当在映射文件的class标签中设置lazy="true"时不采用lazy加载策略
考点:延时加载 (A B C)

Session接口中save方法与persist方法在事务没开启时的区别:
save方法是把数据库插入数据库,再回滚
save方法是把数据库插入数据库
persist方法是抛出异常
persist方法是直接不插入数据库
考点:save方法与persist方法的区别 (A D)

                                                                                                                                                                                                                    
分享到:
评论

相关推荐

    JAVA面试题-数据库部分

    在Java面试中,数据库部分是不可或缺的知识点,因为大多数企业应用程序都依赖于数据库来存储和检索数据。这里我们将深入探讨一些关键的Java与数据库相关的知识点,这些内容可能会出现在面试或笔试中。 首先,我们...

    2021Java面试题合集-Redis面试题42道.pdf

    ### 2021 Java面试题合集之Redis面试题详解 #### 一、Redis简介与特点 **Redis**(Remote Dictionary Server)是一款开源的、高性能的键值(Key-Value)存储系统,广泛应用于缓存、消息队列等多个场景。它支持多种...

    JAVA---------笔试面试题

    本资料集合包含了这两个领域的经典面试题,旨在帮助你深入理解Java的基础和进阶概念。 **J2SE面试题:** 1. **Java基础:** 首先,你需要了解Java的基本语法,如变量、数据类型、运算符、流程控制语句。此外,理解...

    java面试题 - JAVA代码与编程(1)

    本篇将围绕“java面试题 - JAVA代码与编程(1)”这一主题,深入探讨Java编程中的关键知识点。 1. **基础语法** Java的基础语法包括变量声明、数据类型、运算符、流程控制语句(如if-else、switch、for、while等)...

    JAVA面试经典整合

    9.Leetcode-Database 题解 10.Linux 11.MySQL 12.Redis 13.Socket 14.SQL 15.代码可读性 16.代码风格规范 17.分布式 18.剑指 offer 题解 19.攻击技术 20.数据库系统原理 21.正则表达式 22.消息队列 23.算法 24.系统...

    JAVA面试题-2023

    - **定义**:Java数据库连接(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问。 - **作用**: - **驱动管理**:管理数据库驱动。 - **数据库连接**:建立与...

    Java面试题库,java面试题

    Java面试是每位求职者在进入IT行业,尤其是Java开发领域时必须经历的重要环节。这份"Java面试题库"包含了丰富的知识点,旨在帮助求职者更好地准备面试,提高成功几率。以下是一些关键的Java编程和面试相关知识点的...

    Java核心面试知识集-Redis面试题

    ### Java核心面试知识集——Redis面试题解析 #### 一、Redis数据结构相关 ##### 1. Redis支持的数据类型 Redis 提供了多种内置的数据结构,适用于不同的应用场景,包括但不限于以下几种: - **String(字符串)*...

    经典的Java面试题目

    Java是一种广泛使用的面向对象的编程语言...这些经典Java面试题涵盖了Java的基础概念、语法和编程规范,是评估应聘者Java基础知识的重要手段。掌握这些知识不仅能帮助应对面试,也是成为一名合格的Java开发者所必需的。

    java实际公司面试题目

    8. **数据库交互**:虽然Java面试不一定涉及数据库,但JDBC(Java Database Connectivity)和SQL的基本知识是必要的,包括连接数据库、执行查询、处理结果集等。 9. **网络编程**:Java的Socket编程用于实现客户端/...

    java2018面试宝典

    本文是一份关于Java面试的全面复习资料,涵盖了2018年Java面试中常见的知识点。接下来,我将详细解析文档中提到的各个知识点,以及它们在实际面试中的应用。 **算法**: - 算法是面试中考察逻辑思维能力的重要部分...

    java面试知识点总结--JDBC.pdf

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与关系数据库交互...以上就是Java面试中关于JDBC的一些核心知识点,理解并掌握这些内容对于Java后端开发者来说非常重要,尤其是在面试和实际项目开发中。

    面试真题包含spring-java-集合-框架-并发-spring-运维-数据库等多领域45卷合集.rar

    这份名为"面试真题包含spring-java-集合-框架-并发-spring-运维-数据库等多领域45卷合集.rar"的压缩包是为准备Java相关面试的求职者精心整理的资源库。它包含了45套涵盖多个领域的面试题,旨在帮助求职者全面复习和...

    JAVA 程序员 面试经典

    Java程序员面试经典是每个准备Java面试的开发者都应熟悉的主题。这个主题涵盖了广泛的知识点,包括但不限于基础语法、面向对象编程、数据结构与算法、集合框架、多线程、异常处理、I/O流、网络编程、数据库操作以及...

    Java面试宝典2018-最全面试资料

    本资源“Java面试宝典2018-最全面试资料”旨在为求职者提供一个详尽的准备指南,包括JavaSE、JavaEE、数据库以及Java框架的核心概念和技术。以下是基于这些主题的详细知识点解析: 1. **JavaSE**:Java Standard ...

    【面试】Java面试知识卡片大全.zip

    10. **数据库连接与SQL**:虽然Java面试不一定涉及数据库,但了解JDBC(Java Database Connectivity)和SQL基础是必要的,尤其是SQL查询优化和事务处理。 11. **算法与数据结构**:虽然Java面试更侧重于语言特性,...

    java面试100题及答案面试宝典

    根据提供的文件信息,这里将基于“java面试100题及答案面试宝典”的标题、描述和部分提及的内容,来生成一系列与Java相关的面试知识点。虽然原始内容并未给出具体题目,但我们可以根据常见Java面试题目的类型来进行...

    《Java面试手册》.pdf

    本篇文章将深入探讨Java的基础知识,包括类与对象、继承、多态、内存管理以及Java的相关框架等,这些都是Java面试中的常见话题。 1. Java基础知识 - 类与对象:在面向对象编程中,类是创建对象的蓝图,而对象是类...

    Java面试资料(纯干货1).zip

    这份"Java面试资料(纯干货1).zip"压缩包包含了丰富的Java面试题,旨在帮助求职者准备Java工程师的面试。 首先,我们来探讨Java基础部分的知识点。这包括Java语法、数据类型、控制结构(如if语句、switch语句、循环...

    福富2010 Java 面试题

    "福富2010 Java面试题" 以下是根据给定的文件生成的相关知识点: 基础类型 * 如何定义一个十六进制的 long 变量?答:使用long变量类型,例如:`long hex = 0x1234567890ABCDEF;` * long类型可以使用十六进制、十...

Global site tag (gtag.js) - Google Analytics