jdbc和mysql面试题_JDBC数据访问技术面试题(附答案)
隨著移動互聯(lián)網(wǎng)的發(fā)展,從事計算機行業(yè)的人越來越多,這些人中,選擇java的人占了很大一部分比例,相信有很多的人都有面試的需要。在java面試中,少不了的內(nèi)容就是面試題了,今天來說一說JDBC數(shù)據(jù)訪問技術(shù)面試題都有哪些,來盤點一下常考面試題。
1、什么是JDBC,在什么時候會用到它?
答:JDBC的全稱是Java DataBase Connection,也就是Java數(shù)據(jù)庫連接,我們可以用它來操作關(guān)系型數(shù)據(jù)庫。JDBC接口及相關(guān)類在java.sql包和javax.sql包里。我們可以用它來連接數(shù)據(jù)庫,執(zhí)行SQL查詢,存儲過程,并處理返回的結(jié)果。
JDBC接口讓Java程序和JDBC驅(qū)動實現(xiàn)了松耦合,使得切換不同的數(shù)據(jù)庫變得更加簡單。
2、JDBC如何做事務(wù)處理?
答:Con.setAutoCommit(false);
Con.commit();
Con.rollback();
3、在JDBC中常用的接口有哪些?
答:在JDBC中常用的接口有,(1)prepared?Statement(2)callable?Statement(3)statement(4)Connection(5)Result?Set這五個。
4、對Statement,Prepared?Statement,Callable?Statement的理解是什么?
答:statement用于執(zhí)行靜態(tài)SQL語句并返回它所生成結(jié)果的對象,在執(zhí)行時確定sql。Prepared?Statement表示預(yù)編譯的SQL語句的對象。SQL語句被預(yù)編譯并且存儲在 Prepared?Statement 對象中。然后可以使用此對象高效地多次執(zhí)行該語句,可以傳參數(shù),在得到Prepared?Statement對象時確定sql。
Callable?Statement用于執(zhí)行SQL存儲過程的接口。如果有輸出參數(shù)要注冊說明是輸出參數(shù)。
5、JDBC是如何實現(xiàn)Java程序和JDBC驅(qū)動的松耦合的?
答:JDBC API使用Java的反射機制來實現(xiàn)Java程序和JDBC驅(qū)動的松耦合。隨便看一個簡單的JDBC示例,你會發(fā)現(xiàn)所有操作都是通過JDBC接口完成的,而驅(qū)動只有在通過Class.forName反射機制來加載的時候才會出現(xiàn)。這是Java核心庫里反射機制的最佳實踐之一,它使得應(yīng)用程序和驅(qū)動程序之間進行了隔離,讓遷移數(shù)據(jù)庫的工作變得更簡單。
6、JDBC的Driver Manager是用來做什么的?
答:JDBC的Driver Manager是一個工廠類,我們通過它來創(chuàng)建數(shù)據(jù)庫連接。當(dāng)JDBC的Driver類被加載進來時,它會自己注冊到Driver Manager類里面,然后我們會把數(shù)據(jù)庫配置信息傳成Driver Manager.get Connection()方法,Driver Manager會使用注冊到它里面的驅(qū)動來獲取數(shù)據(jù)庫連接,并返回給調(diào)用的程序。
7、寫一段JDBC連Oracle的程序?
答:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:accp","system","system");
8、JDBC的事務(wù)管理是什么,為什么需要它?
答:默認(rèn)情況下,我們創(chuàng)建的數(shù)據(jù)庫連接,是工作在自動提交的模式下的。這意味著只要我們執(zhí)行完一條查詢語句,就會自動進行提交。因此每條查詢,實際上都是一個事務(wù),如果執(zhí)行的是DML或者DDL,每條語句完成的時候,數(shù)據(jù)庫就已經(jīng)完成修改了。
JDBC接口提供了一個set Auto Commit(boolean flag)方法,我們可以用它來關(guān)閉連接自動提交的特性。我們應(yīng)該在需要手動提交時才關(guān)閉這個特性,不然的話事務(wù)不會自動提交,每次都得手動提交。數(shù)據(jù)庫通過表鎖來管理事務(wù),這個操作非常消耗資源。因此我們應(yīng)當(dāng)完成操作后盡快的提交事務(wù)。在這里有更多關(guān)于事務(wù)的示例程序。
9、Java中訪問數(shù)據(jù)庫的步驟?
答:連接Oracle數(shù)據(jù)庫
Class.forName(“oracle.jdbc.driver.OracleDriver”);
Connection con=DriverManager.openConnection(“jdbc:oracle:thin:@localhost:1521:DataBase ”,” UserName”,”Password ”)
利用JDBC檢索出表中的數(shù)據(jù)
Class.forName(“”);
Connection con=DriverManager.openConnection(“ ”,” ”,” ”)
preparedStatment ps=Con.preparedStatment(“select * from [table]”);
ResultSet rs=ps.executeQuery();
While(rs.next)
{
Rs.getString(1) 或rs.getString(“字段名”)
}
10、JDO是什么?
答:JDO是Java對象持久化的新的規(guī)范,為java data object的簡稱,也是一個用于存取某種數(shù)據(jù)倉庫中的對象的標(biāo)準(zhǔn)化API。JDO提供了透明的對象存儲,因此對開發(fā)人員來說,存儲數(shù)據(jù)對象完全不需要額外的代碼(如JDBC API的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO產(chǎn)品提供商身上,使開發(fā)人員解脫出來,從而集中時間和精力在業(yè)務(wù)邏輯上。另外,JDO很靈活,因為它可以在任何數(shù)據(jù)底層上運行。JDBC只是面向關(guān)系數(shù)據(jù)庫(RDBMS)JDO更通用,提供到任何數(shù)據(jù)底層的存儲功能,比如關(guān)系數(shù)據(jù)庫、文件、XML以及對象數(shù)據(jù)庫等等,使得應(yīng)用可移植性更強。
上面的10道題就是在java面試中常考的JDBC數(shù)據(jù)訪問技術(shù)面試題了。隨著人們對JDBC的興趣日益增漲,越來越多的開發(fā)人員一直在使用基于JDBC的工具,以使程序的編寫更加容易。Java程序員也一直在編寫力圖使最終用戶對數(shù)據(jù)庫的訪問變得更為簡單的應(yīng)用程序,所以面試官還是比較喜歡和重視對JDBC方面的考察的,希望朋友們可以將這10道JDBC數(shù)據(jù)訪問技術(shù)面試題掌握好,順利通過面試。
總結(jié)
以上是生活随笔為你收集整理的jdbc和mysql面试题_JDBC数据访问技术面试题(附答案)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python显示控制台行情_python
- 下一篇: boot spring 对参数检测_【s