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創建的