java面试题之JDBC篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java⾯试题之JDBC篇
1,什么是JDBC?JDBC访问数据库的基本步骤是什么?
JDBC(Java Database Connectivity)是sun公司提供的⼀种数据库访问规则。
Java程序只需要使⽤JDBC即可驱动数据库。
步骤:
⾸先要引⼊JDBC驱动包:
然后再进⾏以下步骤
2,说说preparedStatement和Statement的区别
prepareStatement是Statement的实现类
prepareStatement会先对sql语句进⾏预处理后再创建prepareStatement对象,⼤⼤缩减了访问数据库的速度
⽽statement是先创建对象在执⾏sql语句
prepareStatement在执⾏sql语句时,将传⼊?中的语句整个看为字符串,没有关键字的约束
Statement在执⾏sql语句时,会受到关键字的影响,导致安全问题
3,说说事务的概念,在JDBC编程中处理事务的步骤。
事务(Transaction):指的是⼀组操作,⾥⾯包含很多单⼀的逻辑,只要有⼀个逻辑没有执⾏成功,那么就算失败,所有数据都回到最初的状态(回滚)。
事务开始时:connection.setAutoCommit(false);
出现异常时回滚事务:connection.rollback();
提交事务:mit();
最后可以将⾃动提交设置为true:connection.setAutoCommit(true);
4,数据库连接池的原理。
为什么要使⽤连接池。
原理:在的时候,将数据库连接作为对象存储在内存中,当⽤户需要访问数据库时,并⾮建⽴⼀个新的连接,⽽是从连接池中取出⼀个已建⽴的空闲连接对象。
使⽤完毕后,⽤户也并⾮将连接关闭,⽽是将连接放回连接池中,以供下⼀个请求访问使⽤。
在连接数据库时,⼀个个创建连接对象⽐较消耗性能并且效率较慢;连接数据库连接池后直接从池中拿连接对象,使⽤完后再归还,保证连接对象能循环利⽤。
5,JDBC的脏读是什么?哪种数据库隔离级别能防⽌脏读?
脏读是⼀个事务读到了另⼀个事务未提交的数据
读已提交可防⽌脏读
6,什么是幻读,哪种隔离级别可以防⽌幻读?
幻读是⼀个事务读到了另⼀个事务插⼊的⼀⾏新数据,造成前后查询结果不⼀致
可串⾏化可防⽌幻读
7,JDBC的DriverManager是⽤来做什么的?
DriverManager是⼀个⽤于管理数据库驱动的类。
它有⼏个静态⽅法:
registerDriver:⽤于注册数据库驱动;
getConnection:建⽴与数据库的连接
8,execute,executeQuery,executeUpdate的区别是什么?
execute:可⽤于执⾏任何SQL语句,返回⼀个boolean值,表明执⾏该SQL语句是否返回了ResultSet。
但它执⾏sql 语句⽐较⿇烦,⼀般不⽤。
executeQuery:这个⽅法⼀般⽤于执⾏Select语句,会返回⼀个ResultSet结果集
executeUpdate:这个⽅法可执⾏Update、Insert、Delete语句,返回值是⼀个整数(int),返回受影响的⾏数
9,JDBC的ResultSet是什么?
ResultSet集合的主要功能使⽤来存储查询语句返回的结果集,是Statement和ParpareStatemen创建的。