JDBC面试题(3)

2018-12-04 17:17

setSTRUCT方法传入这个struct对象,并对它进行使用。

35.什么是JDBC的最佳实践?

下面列举了其中的一些:

1、 数据库资源是非常昂贵的,用完了应该尽快关闭它。Connection, Statement,

ResultSet等JDBC对象都有close方法,调用它就好了。

2、 养成在代码中显式关闭掉ResultSet,Statement,Connection的习惯,如果你用的是

连接池的话,连接用完后会放回池里,但是没有关闭的ResultSet和Statement就会造成资源泄漏了。

3、在finally块中关闭资源,保证即便出了异常也能正常关闭。 4、大量类似的查询应当使用批处理完成。

5、尽量使用PreparedStatement而不是Statement,以避免SQL注入,同时还能通过预编

译和缓存机制提升执行的效率。

6、如果你要将大量数据读入到ResultSet中,应该合理的设置fetchSize以便提升性能。 7、你用的数据库可能没有支持所有的隔离级别,用之前先仔细确认下。

8、数据库隔离级别越高性能越差,确保你的数据库连接设置的隔离级别是最优的。

9、如果在WEB程序中创建数据库连接,最好通过JNDI使用JDBC的数据源,这样可以对连

接进行重用。

10、如果你需要长时间对ResultSet进行操作的话,尽量使用离线的RowSet。

二、JDBC相关测试题

1.JDBC连接数据库6步

答案:Load the JDBC Driver

Establish the Database Connection Create a Statement Object Execute a Query Process the Results Close the Connection

2.事务的4大特性

答案:原子性A,一致性C,隔离性I,永久性D

3.select count(*) from student 和select count(id) from student 之间的区别。

答案:

select count(*) 统计所有学生的记录个数,包括空记录。

Select count(Id) 统计所有学生的记录个数,不包括null记录。

4.假设现在有表system.table1,表中有三个字段:id(数值型)、name(字符型)、age(数值型)写出SQL语句完成如下功能:在表中查出年龄大于20,且名字以“王”开头的记录,并且按照年龄的倒叙排列出来(年龄大的在前面)。

答案:

Select * from system.table1 where age>20 and name like ‘王%’ order by age DESC;

5 .创建CUSTOMERS表,字段为:ID:(非空,主键)bigint,NAME:(非空)varchar,AGE:int类型;创建ORDERS表,字段为:ID:(非空,主键,)bigint,ORDER_NUMBER:(非空)varchar,PRICE:double,CUSTOMER_ID :(外键)bigint,设置级连删除;

答案:

create table CUSTOMBERS(ID bigint not null,NAMEvarchar(15),AGE int,primary key (ID)); create table ORDERS(ID bigint not null,ORDER_NUMBERvarchar(15) not nulll,PRICE double precision,CUSTOMER_IDbigint,primary key(ID),);

alter table ORDERS add constraint FK_CUSTOMER foreign key (CUSTOMER_ID) references CUSTOMERS(ID) on delete cascade;

6.使用左外连接查询,ORDERS 和 CUSTOMERS 表,

答案:

select c.ID, o.CUSTOMER_ID,c.NAME, o.ID ORDER_ID,ORDER_NUMBER from CUSTOMERS c left outer join ORDERS o no c.ID=o.CUSTOMER_ID;

7 .简述数据库事务的生命周期?(可画流程图)

答案:无。

8.delete from tablea& truncate table tablea的区别

答案:

truncate 语句执行速度快,占资源少,并且只记录页删除的日志; delete 对每条记录的删除均需要记录日志

三、JDBC相关测试题(二)

选择题

1. 有关JDBC的选项正确的是哪一个?

A. JDBC是一种被设计成通用的数据库连接技术,JDBC技术不光可以应用在Java程

序里面,还可以用在C++这样的程序里面。

B. JDBC技术是SUN公司设计出来专门用在连接Oracle数据库的技术,连接其他的

数据库只能采用微软的ODBC解决方案

C. 微软的ODBC和SUN公司的JDBC解决方案都能实现跨平台使用,只是JDBC的性能

要高于ODBC

D. JDBC只是个抽象的调用规范,底层程序实际上要依赖于每种数据库的驱动文件 2. 选择JDBC可以执行的语句(多选) A. DDL B. DCL C. DML D. 以上都可以

3. 选择Java程序开发中推荐使用的常用数据库(多选) a. Oracle

b. SQL Server 2000 c. MySQL

d. DB2

4. 哪个不是JDBC用到的接口和类? a. System b. Class c. Connection d. ResultSet

5. 使用Connection 的哪个方法可以建立一个PreparedStatement接口?

A. createPrepareStatement() B. prepareStatement()

C. createPreparedStatement() D. preparedStatement() 6. 下面的描述正确的是什么?

A. PreparedStatement继承自Statement B. Statement继承自PreparedStatement C. ResultSet继承自Statement

D. CallableStatement继承自PreparedStatement 7. 下面的描述错误的是什么?

A. Statement的executeQuery()方法会返回一个结果集

B. Statement的executeUpdate()方法会返回是否更新成功的boolean值 C. 使用ResultSet中的getString()可以获得一个对应于数据库中char类型的

D. ResultSet中的next()方法会使结果集中的下一行成为当前行 8. 如果数据库中某个字段为numberic型,可以通过结果集中的哪个方法获取?

A. getNumberic() B. getDouble() C. getBigDecimal () D. getFloat()

9. 在Jdbc中使用事务,想要回滚事务事务的方法是什么?

A. Connection的commit() B. Connection的setAutoCommit() C. Connection的rollback() D. Connection的close()

10. 在JDBC编程中执行完下列SQL语句SELECT name, rank, serialNo

FROM employee,能得到rs的第一列数据的代码是哪两个? A. rs.getString(0); B. rs.getString(\C. rs.getString(1); D. rs.getString(\

11. 下面关于PreparedStatement的说法错误的是什么

A. PreparedStatement继承了Statement B. PreparedStatement可以有效的防止SQL注入 C. PreparedStatement不能用于批量更新的操作

D. PreparedStatement可以存储预编译的Statement,从而提升执行效率 12. 下面的选项加载MySQL驱动正确的是哪一个?

A. Class.forname(\B. Class.forname(\C. Class.forname(\D. Class.forname(\13. 下面的选项加载MySQL驱动正确的是哪一个?

A. Class.forname(\B. Class.forname(\C. Class.forname(\D. Class.forname(\14. 下面代码加载Oracle驱动正确的是哪一个?


JDBC面试题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:海南省琼海市嘉积中学2017届高三下学期第一次月考数学(理)试题含

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: