JavaWeb有哪些面試題

本篇內(nèi)容介紹了“Java Web有哪些面試題”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

姚安ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

61,JDBC訪問數(shù)據(jù)庫的基本步驟是什么?
1,加載驅(qū)動
2,通過DriverManager對象獲取連接對象Connection
3,通過連接對象獲取會話
4,通過會話進行數(shù)據(jù)的增刪改查,封裝對象
5,關(guān)閉資源

62,說說preparedStatement和Statement的區(qū)別
1,效率:預編譯會話比普通會話對象,數(shù)據(jù)庫系統(tǒng)不會對相同的sql語句不會再次編譯
2,安全性:可以有效的避免sql注入攻擊!sql注入攻擊就是從客戶端輸入一些非法的特殊字符,而使服務(wù)器端在構(gòu)造sql語句的時候仍然能夠正確構(gòu)造,從而收集程序和服務(wù)器的信息和數(shù)據(jù)。
比如:“select * from t_user where userName = ‘” + userName + “ ’ and password =’” + password + “’”
如果用戶名和密碼輸入的是’1’ or ‘1’=’1’ ;  則生產(chǎn)的sql語句是:
“select * from t_user where userName = ‘1’ or ‘1’ =’1’  and password =’1’  or ‘1’=’1’  這個語句中的where 部分沒有起到對數(shù)據(jù)篩選的作用。

63,說說事務(wù)的概念,在JDBC編程中處理事務(wù)的步驟。
1 事務(wù)是作為單個邏輯工作單元執(zhí)行的一系列操作。
2,一個邏輯工作單元必須有四個屬性,稱為原子性、一致性、隔離性和持久性 (ACID) 屬性,只有這樣才能成為一個事務(wù)
事務(wù)處理步驟:
3,conn.setAutoComit(false);設(shè)置提交方式為手工提交
4,conn.commit()提交事務(wù)
5,出現(xiàn)異常,回滾 conn.rollback();

64,數(shù)據(jù)庫連接池的原理。為什么要使用連接池。
1,數(shù)據(jù)庫連接是一件費時的操作,連接池可以使多個操作共享一個連接。
2,數(shù)據(jù)庫連接池的基本思想就是為數(shù)據(jù)庫連接建立一個“緩沖池”。預先在緩沖池中放入一定數(shù)量的連接,當需要建立數(shù)據(jù)庫連接時,只需從“緩沖池”中取出一個,使用完畢之后再放回去。我們可以通過設(shè)定連接池最大連接數(shù)來防止系統(tǒng)無盡的與數(shù)據(jù)庫連接。更為重要的是我們可以通過連接池的管理機制監(jiān)視數(shù)據(jù)庫的連接的數(shù)量、使用情況,為系統(tǒng)開發(fā),測試及性能調(diào)整提供依據(jù)。
3,使用連接池是為了提高對數(shù)據(jù)庫連接資源的管理

65,JDBC的臟讀是什么?哪種數(shù)據(jù)庫隔離級別能防止臟讀?

當我們使用事務(wù)時,有可能會出現(xiàn)這樣的情況,有一行數(shù)據(jù)剛更新,與此同時另一個查詢讀到了這個剛更新的值。這樣就導致了臟讀,因為更新的數(shù)據(jù)還沒有進行持久化,更新這行數(shù)據(jù)的業(yè)務(wù)可能會進行回滾,這樣這個數(shù)據(jù)就是無效的。數(shù)據(jù)庫的TRANSACTIONREADCOMMITTEDTRANSACTIONREPEATABLEREAD,和TRANSACTION_SERIALIZABLE隔離級別可以防止臟讀。

66,什么是幻讀,哪種隔離級別可以防止幻讀?

幻讀是指一個事務(wù)多次執(zhí)行一條查詢返回的卻是不同的值。假設(shè)一個事務(wù)正根據(jù)某個條件進行數(shù)據(jù)查詢,然后另一個事務(wù)插入了一行滿足這個查詢條件的數(shù)據(jù)。之后這個事務(wù)再次執(zhí)行了這條查詢,返回的結(jié)果集中會包含剛插入的那條新數(shù)據(jù)。這行新數(shù)據(jù)被稱為幻行,而這種現(xiàn)象就叫做幻讀。

只有TRANSACTION_SERIALIZABLE隔離級別才能防止產(chǎn)生幻讀。

67,JDBC的DriverManager是用來做什么的?
JDBC的DriverManager是一個工廠類,我們通過它來創(chuàng)建數(shù)據(jù)庫連接。當JDBC的Driver類被加載進來時,它會自己注冊到DriverManager類里面
然后我們會把數(shù)據(jù)庫配置信息傳成DriverManager.getConnection()方法,DriverManager會使用注冊到它里面的驅(qū)動來獲取數(shù)據(jù)庫連接,并返回給調(diào)用的程序。

68,execute,executeQuery,executeUpdate的區(qū)別是什么?
        1,Statement的execute(String query)方法用來執(zhí)行任意的SQL查詢,如果查詢的結(jié)果是一個ResultSet,這個方法就返回true。如果結(jié)果不是ResultSet,比如insert或者update查詢,它就會返回false。我們可以通過它的getResultSet方法來獲取ResultSet,或者通過getUpdateCount()方法來獲取更新的記錄條數(shù)。 
        2,Statement的executeQuery(String query)接口用來執(zhí)行select查詢,并且返回ResultSet。即使查詢不到記錄返回的ResultSet也不會為null。我們通常使用executeQuery來執(zhí)行查詢語句,這樣的話如果傳進來的是insert或者update語句的話,它會拋出錯誤信息為 “executeQuery method can not be used for update”的java.util.SQLException。 ,
        3,Statement的executeUpdate(String query)方法用來執(zhí)行insert或者update/delete(DML)語句,或者 什么也不返回,對于DDL語句,返回值是int類型,如果是DML語句的話,它就是更新的條數(shù),如果是DDL的話,就返回0。 
只有當你不確定是什么語句的時候才應(yīng)該使用execute()方法,否則應(yīng)該使用executeQuery或者executeUpdate方法。

69,SQL查詢出來的結(jié)果分頁展示一般怎么做?

Oracle:

select * from
(select *,rownum as tempid from student )  t
where t.tempid between ” + pageSize*(pageNumber-1) + ” and ” + pageSize*pageNumber

MySQL:
   select * from students limit ” + pageSize*(pageNumber-1) + “,” + pageSize;

sql server:
   select top ” + pageSize + ” * from students where id not in +
(select top ” + pageSize * (pageNumber-1) +  id from students order by id) +  
“order by id;

70,JDBC的ResultSet是什么?
在查詢數(shù)據(jù)庫后會返回一個ResultSet,它就像是查詢結(jié)果集的一張數(shù)據(jù)表。
ResultSet對象維護了一個游標,指向當前的數(shù)據(jù)行。開始的時候這個游標指向的是第一行。如果調(diào)用了ResultSet的next()方法游標會下移一行,如果沒有更多的數(shù)據(jù)了,next()方法會返回false??梢栽趂or循環(huán)中用它來遍歷數(shù)據(jù)集。
默認的ResultSet是不能更新的,游標也只能往下移。也就是說你只能從第一行到最后一行遍歷一遍。不過也可以創(chuàng)建可以回滾或者可更新的ResultSet

當生成ResultSet的Statement對象要關(guān)閉或者重新執(zhí)行或是獲取下一個ResultSet的時候,ResultSet對象也會自動關(guān)閉。
可以通過ResultSet的getter方法,傳入列名或者從1開始的序號來獲取列數(shù)據(jù)。

“Java Web有哪些面試題”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

當前文章:JavaWeb有哪些面試題
當前URL:http://muchs.cn/article20/jojejo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導航定制開發(fā)、網(wǎng)站設(shè)計公司、自適應(yīng)網(wǎng)站、移動網(wǎng)站建設(shè)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作