大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 8道經典JDBC面試題

8道經典JDBC面試題

更新時間:2021-02-24 17:32:02 來源:動力節點 瀏覽1422次

JDBC提供了諸如查詢和更新數據庫中數據的方法,本質上是用來規范訪問數據庫的應用程序接口。總的來說,JDBC在數據庫中有著不容忽視的地位,需要我們花費足夠的時間去學習,無論是在求職面試還是學習中都需要重視。下面為大家介紹8道經典JDBC面試題

1、JDBC操作數據庫的步驟 ?

1)注冊數據庫驅動。

2)建立數據庫連接。

3)創建一個Statement。

4)執行SQL語句。

5)處理結果集。

6)關閉數據庫連接

2、JDBC中的Statement 和PreparedStatement,CallableStatement的區別?

區別:

1)PreparedStatement是預編譯的SQL語句,效率高于Statement。

2)PreparedStatement支持?操作符,相對于Statement更加靈活。

3)PreparedStatement可以防止SQL注入,安全性高于Statement。

4)CallableStatement適用于執行存儲過程。

3、說說數據庫連接池工作原理。

JAVA EE服務器啟動時會建立一定數量的池連接,并一直維持不少于此數目的池連接。客戶端程序需要連接時,池驅動程序會返回一個未使用的池連接并將其表記為忙。如果當前沒有空閑連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。當使用的池連接調用完成后,池驅動程序將此連接表記為空閑,其他調用就可以使用這個連接。

  1. 數據庫連接池的實現方案?

連接池使用集合來進行裝載,返回的Connection是原始Connection的代理,代理Connection的close方法,當調用close方法時,不是真正關連接,而是把它代理的Connection對象放回到連接池中,等待下一次重復利用。具體代碼:

@Override

????public Connection getConnection() throws SQLException {



????????if (list.size() > 0) {

????????????final Connection connection = list.removeFirst();



????????????//看看池的大小

????????????System.out.println(list.size());



????????????//返回一個動態代理對象

????????????return (Connection) Proxy.newProxyInstance(Demo1.class.getClassLoader(), connection.getClass().getInterfaces(), new InvocationHandler() {



????????????????@Override

????????????????public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {



????????????????????//如果不是調用close方法,就按照正常的來調用

????????????????????if (!method.getName().equals("close")) {

????????????????????????method.invoke(connection, args);

????????????????????} else {



????????????????????????//進到這里來,說明調用的是close方法

????????????????????????list.add(connection);



????????????????????????//再看看池的大小

????????????????????????System.out.println(list.size());



????????????????????}

????????????????????return null;

????????????????}



????????????});

????????}

????????return null;

}

5、寫出一段JDBC連接本機MySQL數據庫的代碼。

Class.forName("com.mysql.jdbc.Driver");

String url="jdbc:mysql://localhost/test";

Stirng user='root';

String password='root';

Connection conn = DriverManager.getConnection(url,user,password);

6、execute,executeQuery,executeUpdate的區別是什么?

· Statement的execute(String query)方法用來執行任意的SQL查詢,如果查詢的結果是一個ResultSet,這個方法就返回true。如果結果不是ResultSet,比如insert或者update查詢,它就會返回false。我們可以通過它的getResultSet方法來獲取ResultSet,或者通過getUpdateCount()方法來獲取更新的記錄條數。

· Statement的executeQuery(String query)接口用來執行select查詢,并且返回ResultSet。即使查詢不到記錄返回的ResultSet也不會為null。我們通常使用executeQuery來執行查詢語句,這樣的話如果傳進來的是insert或者update語句的話,它會拋出錯誤信息為 “executeQuery method can not be used for update”的java.util.SQLException。

· Statement的executeUpdate(String query)方法用來執行insert或者update/delete(DML)語句,或者 什么也不返回DDL語句。返回值是int類型,如果是DML語句的話,它就是更新的條數,如果是DDL的話,就返回0。

· 只有當你不確定是什么語句的時候才應該使用execute()方法,否則應該使用executeQuery或者executeUpdate方法。

7、PreparedStatement的缺點是什么,怎么解決這個問題?

PreparedStatement的一個缺點是,我們不能直接用它來執行in條件語句;需要執行IN條件語句的話,下面有一些解決方案:

1)分別進行單條查詢——這樣做性能很差,不推薦。

2)使用存儲過程——這取決于數據庫的實現,不是所有數據庫都支持。

3)動態生成PreparedStatement——這是個好辦法,但是不能享受PreparedStatement的緩存帶來的好處了。

4)在PreparedStatement查詢中使用NULL值——如果你知道輸入變量的最大個數的話,這是個不錯的辦法,擴展一下還可以支持無限參數。

8、JDBC的ResultSet是什么?

在查詢數據庫后會返回一個ResultSet,它就像是查詢結果集的一張數據表。

ResultSet對象維護了一個游標,指向當前的數據行。開始的時候這個游標指向的是第一行。如果調用了ResultSet的next()方法游標會下移一行,如果沒有更多的數據了,next()方法會返回false。可以在for循環中用它來遍歷數據集。

默認的ResultSet是不能更新的,游標也只能往下移。也就是說你只能從第一行到最后一行遍歷一遍。不過也可以創建可以回滾或者可更新的ResultSet。

當生成ResultSet的Statement對象要關閉或者重新執行或是獲取下一個ResultSet的時候,ResultSet對象也會自動關閉。

可以通過ResultSet的getter方法,傳入列名或者從1開始的序號來獲取列數據。

以上就是為大家介紹的8道經典JDBC面試題,當然,JDBC的面試題還有很多,不是僅僅靠這8道題就能完全代表的了,在本站的JDBC教程中還有更多的更加全面的JDBC面試題,有需要的小伙伴可以前去學習,為自己未來的求職面試做下鋪墊。

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久久久亚洲精品美女 | 亚洲精品一区二区三区四区手机版 | 久久这里有精品视频 | 亚洲视频欧洲视频 | 亚洲国产精品成 | 黄片一级毛片 | 国产精品99久久久久久人 | 够爱久久 | 成人高清毛片a | 欧美不卡精品中文字幕日韩 | 香蕉久久高清国产精品免费 | 精品久久久中文字幕 | 久久九九久精品国产 | 国产精品网站在线观看 | 国内在线精品 | 日韩高清毛片 | 久青草影院在线观看国产 | 中日韩欧美一级毛片 | 狠狠色成人综合网图片区 | 国内久久精品视频 | 国产福利网站 | 亚洲精品一区二区三区在 | a久久| 免费性生活视频 | 亚洲视频免费观看 | 久久国产精品高清一区二区三区 | 午夜影院免费在线观看 | 欧美一级毛片俄罗斯 | 亚洲欧美精品一中文字幕 | 国产精品_国产精品_国产精品 | 97人人澡| 免费一级欧美片在线观看 | 欧美成人小视频 | 天天色天天操天天 | 国产成人亚洲综合欧美一部 | 538在线视频二三区视视频 | 酒色网站| 综合亚洲精品一区二区三区 | 欧美日韩国产成人综合在线影院 | 国产精品成人一区二区 | 欧美曰批人成在线观看 |