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();
提交事务: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创建的