JDBC題庫


一、    填空題

  1.    JDBC    ,是一種用於執行SQL語句的Java API,為多種關系數據庫提供統一訪問。它由一組用Java語言編寫的類和接口組成。
  2. JDBC API:供程序員調用的接口與類,集成在java.sql  javax.sql包中。
  3. 簡單地說,JDBC 可做三件事:  與數據庫建立連接   發送操作數據庫的語句處理結果
  4. 加載JDBC驅動是通過調用方法  java.lang.Class.forName()  實現的。
  5. JDBC中與數據庫建立連接是通過調用 DriverManager類的靜態方法

   getConnection(url,user,password)  實現的。

  1. 有三種 Statement對象:Statement   preparedStatemen CallableStatement(從PreparedStatement 繼承)
  2.   ResultSet  對象是executeQuery()方法的返回值,它被稱為結果集,它代表符合SQL語句條件的所有行,並且它通過一套getXXX方法(這些get方法可以訪問當前行中的不同列)提供了對這些行中數據的訪問。
  3. ResultSet對象自動維護指向當前數據行的游標。每調用一次  next()  方法,游標向下移動一行。
  4. 在JDBC中,事務操作成功后,系統將自動調用   commit()  提交,否則調用rollback()回滾。
  5. 在JDBC中,事務操作方法都位於接口java.sql.Connection中。可以通過調用

  setAutoCommit(false)  來禁止自動提交。

  1. JDBC中,事務開始的邊界不是那么明顯,它會開始於組成當前事務的所有  statement  中的第一個被執行的時候。

 

二、    選擇題

 

1.

以下選項中有關Connection描述錯誤的是(  D  (選擇一項)

 

 

 

 

A.

Connection是Java程序與數據庫建立的連接對象,這個對象只能用來連接

數據庫,不能執行SQL語句。

 

B.

JDBC的數據庫事務控制要靠Connection對象完成。

 

C.

Connection對象使用完畢后要及時關閉,否則會對數據庫造成負擔。

 

D.

只用MySQL和Oracle數據庫的JDBC程序需要創建Connection對象,其他

數據庫的JDBC程序不用創建Connection對象就可以執行CRUD操作

 

2.

使用Connection 的哪個方法可以建立一個PreparedStatement接口?(  B  )(選擇一項)

 

 

 

 

A.

 createPrepareStatement()

 

B.

prepareStatement()  

 

C.

createPreparedStatement()  

 

D.

preparedStatement()

 

3.

下面的描述錯誤的是(  B  (選擇一項)

 

 

 

 

A.

Statement的executeQuery()方法會返回一個結果集  

 

B.

 Statement的executeUpdate()方法會返回是否更新成功的boolean值 

 

C.

Statement的execute ()方法會返回boolean值 ,含義是是否返回結果集

 

D.

 Statement的executeUpdate()方法會返回值是int類型,含義是DML操作影響記錄數 

 

4.

下列選項有關ResultSet說法錯誤的是(  AD  (選擇二項)

 

 

 

 

A.

ResultSet是查詢結果集對象,如果JDBC執行查詢語句沒有查詢到數據,那 么ResultSet將會是null值

 

B.

判斷ResultSet是否存在查詢結果集,可以調用它的next()方法

 

C.

如果Connection對象關閉,那么ResultSet也無法使用

 

D.

ResultSet有一個記錄指針,指針所指的數據行叫做當前數據行,初始狀態下記錄指針指向第一條記錄。

 

5.

在JDBC編程中執行完下列SQL語句

SELECT name, rank, serialNo FROM employee

能得到rs的第一列數據的代碼是(  BC  (選擇二項)

 

 

 

 

A.

rs.getString(0); 

 

B.

rs.getString("name"); 

 

C.

 rs.getString(1);  

 

D.

 rs.getString("ename");

 

6.

SELECT COUNT(*) FROM emp;這條SQL語句執行,如果員工表中沒有任何數據,

那么ResultSet中將會是(  B  (選擇一項)

 

 

 

 

A.

null 

 

B.

有數據

 

C.

不為null,但是沒有數據

 

D.

 以上都選項都不對

 

7.

以下選項關於PreparedStatement的說法錯誤的是(  C  (選擇一項)

 

 

 

 

A.

 PreparedStatement繼承了Statement ,可以執行預編譯的SQL語句

 

B.

PreparedStatement可以有效的防止SQL注入

 

C.

 PreparedStatement只能執行帶問號占位符的預編譯SQL,不能執行SQL語句

 

D.

PreparedStatement可以存儲預編譯的SQL語句,從而提升執行效率

  

8.

如果為下列預編譯SQL的第三個問號賦值,那么正確的選項是(  B  (選擇一項)

UPDATE emp SET ename=?,job=?,salary=? WHERE empno=?

 

 

 

 

A.

pst.setInt("3",2000);

 

B.

 pst.setInt(3,2000); 

 

C.

pst.setFloat("salary",2000); 

 

D.

pst.setString("salary","2000");

 

三、    判斷題

  1. JDBC對Java程序員而言是接口模型,對實現與數據庫連接的服務提供商而言是API。(  F  )
  2. JDBC訪問數據庫步驟:1:加載一個Driver驅動;2:創建數據庫連接Connection。3:創建SQL命令發送器Statement。4:通過Statement發送SQL命令並得到結果。5:處理結果。6:關閉數據庫資源。(  T  )
  3. ResultSet里的數據一行一行排列,每行有多個字段,且有一個記錄指針,指針所指的數據行叫做當前數據行,我們只能來操作當前的數據行。我們如果想要取得某一條記錄,可以使用ResultSet的next()方法 ,如果我們想要得到ResultSet里的所有記錄,就應該使用while循環。(  T  )
  4. ResultSet對象自動維護指向當前數據行的游標。每調用一次next()方法,游標向下移動一行。 循環完畢后指回第一條記錄。( F   )
  5. 作為一種好的編程風格,應在不需要Statement對象和Connection對象時顯式地關閉它們。(  T  )
  6. 用戶不必關閉ResultSet。當它的 Statement 關閉、重新執行或用於從多結果序列中獲取下一個結果時,該ResultSet將被自動關閉。( T  )
  7. 要按先ResultSet結果集,后Statement,最后Connection的順序關閉資源,因為Statement和ResultSet是需要連接是才可以使用的,所以在使用結束之后有可能其他的Statement還需要連接,所以不能先關閉Connection。(  T  )
  8. 在JDBC中,事務操作缺省是需要手動提交的。(  F  )

 

四、    簡答題

  1. 有哪些不同類型的JDBC驅動?

A JDBC-ODBC Bridge plus ODBC Driver(類型1):它使用ODBC驅動連接數據庫。需要安裝ODBC以便連接數據庫,正因為這樣,這種方式現在已經基本淘汰了。

 

  B Native API partly Java technology-enabled driver(類型2):這種驅動把JDBC調用適配成數據庫的本地接口的調用。

 

  C Pure Java Driver for Database Middleware(類型3):這個驅動把JDBC調用轉發給中間件服務器,由它去和不同的數據庫進行連接。用這種類型的驅動需要部署中間件服務器。這種方式增加了額外的網絡調用,導致性能變差,因此很少使用。

 

  D Direct-to-Database Pure Java Driver(類型4):這個驅動把JDBC轉化成數據庫使用的網絡協議。這種方案最簡單,也適合通過網絡連接數據庫。不過使用這種方式的話,需要根據不同數據庫選用特定的驅動程序,比如OJDBC是Oracle開發的Oracle數據庫的驅動,而MySQL Connector/J是MySQL數據庫的驅動。

  1. JDBC的操作步驟主要有哪些?

1:加載一個Driver驅動;

2:創建數據庫連接Connection。

3:創建SQL命令發送器Statement。

4:通過Statement發送SQL命令並得到結果。

5:處理結果。

6:關閉數據庫資源。

  1. execute,executeQuery,executeUpdate的區別是什么?

 

  1. JDBC的ResultSet是什么?

 

  1. 相對於Statement,PreparedStatement的優點是什么?

 

 

  1. JDBC的事務管理是什么,為什么需要它?


免責聲明!

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



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