1,什么是JDBC?JDBC访问数据库的基本步骤是什么?

  JDBC(Java Database Connectivity)是sun公司提供的一种数据库访问规则。Java程序只需要使用JDBC即可驱动数据库。

  步骤:

    首先要引入JDBC驱动包:  

    

db面试题 java jdbc面试题及答案_db面试题 java

 

 

    然后再进行以下步骤

 

    

db面试题 java jdbc面试题及答案_连接池_02

 

 

 

 

 

 

2,说说preparedStatement和Statement的区别

  prepareStatement是Statement的实现类


  prepareStatement会先对sql语句进行预处理后再创建prepareStatement对象,大大缩减了访问数据库的速度

 

  而statement是先创建对象在执行sql语句

 

  prepareStatement在执行sql语句时,将传入?中的语句整个看为字符串,没有关键字的约束

  Statement在执行sql语句时,会受到关键字的影响,导致安全问题

 

 

3,说说事务的概念,在JDBC编程中处理事务的步骤。

事务(Transaction):指的是一组操作,里面包含很多单一的逻辑,只要有一个逻辑没有执行成功,那么就算失败,所有数据都回到最初的状态(回滚)。

 

  事务开始时:connection.setAutoCommit(false); 

  出现异常时回滚事务:connection.rollback(); 

  提交事务:connection.commit(); 

  最后可以将自动提交设置为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创建的