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(); 

  提交事務: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創建的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM