大战熟女丰满人妻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面試題,有需要的小伙伴可以前去學習,為自己未來的求職面試做下鋪墊。

 

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩欧美国产成人 | 亚洲一区二区影院 | 日本不卡在线视频高清免费 | 久久综合中文字幕一区二区 | 天天操操操| 国产a国产 | 离线枕边人在线观看 | 中文字幕亚洲高清综合 | 一二三四社区在线播放 | 四虎影院视频在线观看 | 精品午夜国产在线观看不卡 | 亚洲高清在线观看视频 | 亚洲国产精品第一区二区 | 91大神在线精品视频一区 | 99自拍视频在线观看 | 亚洲三级中文字幕 | 免费高h影片在线观看 | 奇米色第四色 | 日韩黄色网页 | 久久亚洲国产伦理 | 亚洲免费福利 | 久久er热这里只有精品23 | 狠狠狠综合色 | 九九久久视频 | 亚洲日韩中文字幕在线播放 | 成人不卡视频 | 亚洲国产综合视频 | 一级毛片在线观看视频 | 日日夜夜操操 | 成人综合网站 | 国产欧美在线观看精品一区二区 | 一级生活毛片 | 日本高清h色视频在线观看 日本高清不卡二区 | 成 人 黄 片 大全 | 日韩免费看 | www日日日 | 第四色奇米影视 | 亚洲系列第一页 | 99在线热视频只有精品免费 | 国产第一页福利 | 日韩黄网|