java和sql心得_第1頁(yè)
java和sql心得_第2頁(yè)
java和sql心得_第3頁(yè)
java和sql心得_第4頁(yè)
java和sql心得_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1、 equals 和=區(qū)別, hashcode 如果沒(méi)有覆蓋equals方法 equals 和 = 是一樣的。通常都要覆蓋equals方法,比較自己想比較的內(nèi)容。=就是要比較 hashcode 就是內(nèi)存地址。如果覆蓋了equals方法通常要復(fù)寫(xiě) hashcode方法,這個(gè) 我正在研究1.1 異常體系:通常誰(shuí)調(diào)用某個(gè)方法,如果這個(gè)方法拋出異常給調(diào)用者, 構(gòu)造異常的的時(shí)候你可以輸入顯而易見(jiàn)的字符串,這些顯而易見(jiàn)的地字符串是父類(lèi)已經(jīng)寫(xiě)好了 1.2 如果你要定義一個(gè)新異常,那么你要在調(diào)用類(lèi)上和 拋出 到那個(gè)類(lèi)上聲明 或者捕獲。 想使用父類(lèi)的東西 直接繼承。1.3 異常中 有編譯時(shí)異常 和運(yùn)行時(shí)異常,

2、 編譯時(shí)異常 是能在編譯的時(shí)候處理的。 運(yùn)行時(shí)異常 在正常運(yùn)行的時(shí)候拋出的異常,這種異常無(wú)需拋出,拋出的目的是給調(diào)用者處理這種情況,但是如果 調(diào)用者后面的方法需要用到 這個(gè)拋出異常的結(jié)果, 那么 你就是處理了 也沒(méi)用!直接讓這個(gè)程序停掉! 但是如果 拋出后可以 解決呢?常見(jiàn)的處理方式:拋出異常給調(diào)用者, 調(diào)用者 try1.4 Tostring 方法就是返回的是 getclass.getName()+Obj.hashcode();1.5編譯時(shí)異常: 程序正確,但因?yàn)橥庠诘沫h(huán)境條件不滿(mǎn)足引發(fā)。例如:用戶(hù)錯(cuò)誤及I/O問(wèn)題-程序試圖打開(kāi)一個(gè)并不存在的遠(yuǎn)程Socket端口。這不是程序本身的邏輯錯(cuò)誤,而很

3、可能是遠(yuǎn)程機(jī)器名字錯(cuò)誤(用戶(hù)拼寫(xiě)錯(cuò)誤)。對(duì)商用軟件系統(tǒng),程序開(kāi)發(fā)者必須考慮并處理這個(gè)問(wèn)題。Java編譯器強(qiáng)制要求處理這類(lèi)異常,如果不捕獲這類(lèi)異常,程序?qū)⒉荒鼙痪幾g。運(yùn)行期異常: 這意味著程序存在bug,如數(shù)組越界,0被除,入?yún)⒉粷M(mǎn)足規(guī)范.這類(lèi)異常需要更改程序來(lái)避免,Java編譯器強(qiáng)制要求處理這類(lèi)異常。2、正則表達(dá)式3、 JSP頁(yè)面雖然不能寫(xiě)大量代碼,但是吧需要的時(shí)候還是可以寫(xiě)的,這樣可以和HTML有更好的交互。4、 1如何將字串 String 轉(zhuǎn)換成整數(shù) int? A. 有兩個(gè)方法:1). int i = Integer.parseInt(String); 或 i = Integer.pars

4、eInt(String,int radix);2). int i = Integer.valueOf(my_str).intValue(); 注: 字串轉(zhuǎn)成 Double, Float, Long 的方法大同小異. 2 如何將整數(shù) int 轉(zhuǎn)換成字串 String ? A. 有叁種方法:1.) String s = String.valueOf(i);2.) String s = Integer.toString(i); 3.) String s = "" + i; 注: Double, Float, Long 轉(zhuǎn)成字串的方法大同小異. Long如何轉(zhuǎn)換成int1)Inte

5、rger.parseInt(Long.toString();2)LValue();5、 int 32bitlong 64bitfloat 32bitdouble 62bit自己參考吧!另外說(shuō)聲,byte,short,int,long都屬于整形數(shù)據(jù)類(lèi)型而float和double屬于浮點(diǎn)型,而浮點(diǎn)型默認(rèn)的是double,這就意味著你聲明float t = 1.0是不會(huì)通過(guò)編譯的,因?yàn)?.0在java中應(yīng)該是double型的,所以你必須這樣聲明,float t = 1.0F;或者干脆float t =(float)1.0; 從存儲(chǔ)方式上,nvarchar是按字符存儲(chǔ)的,而 varcha

6、r是按字節(jié)存儲(chǔ)的; 從存儲(chǔ)量上考慮, varchar比較節(jié)省空間,因?yàn)榇鎯?chǔ)大小為字節(jié)的實(shí)際長(zhǎng)度,而 nvarchar是雙字節(jié)存儲(chǔ); 在使用上,如果存儲(chǔ)內(nèi)容都是英文字符而沒(méi)有漢字等其他語(yǔ)言符號(hào),建議使用varchar;含有漢字的使用nvarchar,因?yàn)閚varchar是使用Unicode編碼,即統(tǒng)一的字符編碼標(biāo)準(zhǔn),會(huì)減少亂碼的出現(xiàn)幾率;如果你做的項(xiàng)目可能涉及不同語(yǔ)言之間的轉(zhuǎn)換,建議用nvarchar。6、 用于顯示,顯示后就不用了就用 request, 如果顯示后還需要用就用cookie session。 如果顯示后不僅還要用,還要給別人用 就用servletcontext 7、 servle

7、tconfig 這個(gè)是配置到具體的一個(gè)servlet中的, servletcontext是 全局的是整個(gè)應(yīng)用程序的。他的具體應(yīng)用:(1) 共享數(shù)據(jù) 整個(gè)web應(yīng)用(2) 為整個(gè)web應(yīng)用配置參數(shù)(3) 實(shí)現(xiàn)servlet的轉(zhuǎn)發(fā) 體驗(yàn)request 轉(zhuǎn)發(fā)和這里的區(qū)別(4) 獲取配置文件的資源不能通過(guò)servletcontext 帶數(shù)據(jù),是共享的 容易覆蓋。8、response 中不能同時(shí)使用getoutputstream 和getwrite 不能同時(shí)出現(xiàn)9、uest 中的 request.setCharacterEncoding只是對(duì)于表單的post提交有效如果是get提交必須手動(dòng)修改new s

8、tring(“username.getbytes(IS08859-1),”UTF-8);10、 附加參數(shù)的時(shí)候如果是中文,要進(jìn)行什么處理?11、防止表單重復(fù)提交:(1)JavaScript 實(shí)現(xiàn)提交后使提交按鈕變得不可用(2 JavaSript 定義全局變量(3)生成表單的時(shí)候帶上一個(gè)隨機(jī)號(hào),第一次提交的時(shí)候判斷客戶(hù)機(jī)的隨機(jī)數(shù)和服務(wù)器端的隨機(jī)數(shù)是否相等,相等就會(huì)提交,然后就會(huì)刪除這個(gè)服務(wù)器端的隨機(jī)數(shù)。12、搞懂多態(tài) 和接口和抽象類(lèi)真正的好處和區(qū)別。接口就是特殊的繼承,抽象類(lèi)是不同事物的基本共性?xún)?nèi)容就行抽取,接口是不同事物的的特殊功能進(jìn)行抽取,多態(tài):優(yōu)點(diǎn):提高代碼的擴(kuò)展性, 前提定義的代碼 后期

9、同樣能使用,當(dāng)然使用的是事物的基本共性?xún)?nèi)容。弊端:后期子類(lèi)的特殊功能不能使用, 這個(gè)可以采取上下轉(zhuǎn)型來(lái)解決。13、合理的使用集合。14、st.execute(sql);15、 事務(wù)的概念事務(wù)有四大特性(1) 原子性:就是指事務(wù)是一組邏輯操作,要么執(zhí)行都成功! 要么都失敗(2) 隔離性:這個(gè)就是多個(gè)事務(wù)之間隔離的進(jìn)行隔離級(jí)別是:Read uncommitted 最差Read committed 避免臟讀Repeatable read 避免 臟讀,不可重復(fù)讀 不一定避免幻讀Serializable 全部避免 性能最差。(3) 一致性: 就是從一種相同的狀態(tài) 轉(zhuǎn)變到另一種相同的狀態(tài)。(4) 持久性。

10、就是一旦提交了,數(shù)據(jù)就會(huì)永久的保存的數(shù)據(jù)庫(kù)中16、事務(wù)中 可以設(shè)置回滾點(diǎn), 執(zhí)行設(shè)置的回滾點(diǎn)后,一定要commit17、連接池:18、靜態(tài)變量 靜態(tài)代碼塊 匿名內(nèi)部類(lèi)(1)構(gòu)造函數(shù):給對(duì)應(yīng)的對(duì)象的成員變量 進(jìn)行初始化(2)構(gòu)造代碼塊:給所有對(duì)象進(jìn)行初始化。每創(chuàng)建一次對(duì)象構(gòu)造一次(3)靜態(tài)代碼塊;給對(duì)應(yīng)的對(duì)象進(jìn)行初始化,并且只執(zhí)行一次。(4)局部代碼塊:限定變量的使命周期靜態(tài)變量:每個(gè)對(duì)象都需要一個(gè)變量,并且都相同。靜態(tài)方法。 要使用到靜態(tài)變量的方法。19、如果發(fā)現(xiàn)一個(gè)類(lèi)的方法需要增強(qiáng)然后再返回基本有三種解決方式(1)構(gòu)建一個(gè)他的子類(lèi) 覆蓋那個(gè)方法(2)寫(xiě)一個(gè)包裝類(lèi) 只覆蓋需要改寫(xiě)的方法,對(duì)于其

11、他方法不動(dòng)1)寫(xiě)一個(gè)類(lèi),實(shí)現(xiàn)被增強(qiáng)對(duì)象相同的接口2)定義一個(gè)變量指向被增強(qiáng) 對(duì)象3)定義一個(gè)構(gòu)造方法 接收被增強(qiáng)對(duì)象4) 覆蓋想增強(qiáng)的方法5)對(duì)于其他方法,直接調(diào)用被增強(qiáng)對(duì)象的方法(3)動(dòng)態(tài)代理 返回一個(gè)代理對(duì)象, 對(duì)需要的方法進(jìn)行攔截20、private static ExcelTemplate et=new ExcelTemplate(); 這句話(huà)是什么時(shí)候執(zhí)行的。21 potxy invocationHander22 sql語(yǔ)句 一定要 熟練,這方面一定要聯(lián)系。23、ArrayList 為什么存了相同的東西 而進(jìn)行了覆蓋 List 中addAll 方法的使用。24、好好學(xué)習(xí)泛型。25、批

12、處理 和 Statement 和預(yù)處理1.PreparedStatement是預(yù)編譯的,對(duì)于批量處理可以大大提高效率. 也叫JDBC存儲(chǔ)過(guò)程2.使用 Statement 對(duì)象。在對(duì)數(shù)據(jù)庫(kù)只執(zhí)行一次性存取的時(shí)侯,用 Statement 對(duì)象進(jìn)行處理。PreparedStatement 對(duì)象的開(kāi)銷(xiāo)比Statement大,對(duì)于一次性操作并不會(huì)帶來(lái)額外的好處。3.statement每次執(zhí)行sql語(yǔ)句,相關(guān)數(shù)據(jù)庫(kù)都要執(zhí)行sql語(yǔ)句的編譯,preparedstatement是預(yù)編譯得, preparedstatement支持批處理區(qū)別在于,后者使用了PreparedStatement對(duì)象,而前者是普通的S

13、tatement對(duì)象。PreparedStatement對(duì)象不僅包含了SQL語(yǔ)句,而且大多數(shù)情況下這個(gè)語(yǔ)句已經(jīng)被預(yù)編譯過(guò),因而當(dāng)其執(zhí)行時(shí),只需DBMS運(yùn)行SQL語(yǔ)句,而不必先編譯。當(dāng)你需要執(zhí)行Statement對(duì)象多次的時(shí)候,PreparedStatement對(duì)象將會(huì)大大降低運(yùn)行時(shí)間,當(dāng)然也加快了訪問(wèn)數(shù)據(jù)庫(kù)的速度。這種轉(zhuǎn)換也給你帶來(lái)很大的便利,不必重復(fù)SQL語(yǔ)句的句法,而只需更改其中變量的值,便可重新執(zhí)行SQL語(yǔ)句。選擇PreparedStatement對(duì)象與否,在于相同句法的SQL語(yǔ)句是否執(zhí)行了多次,而且兩次之間的差別僅僅是變量的不同。如果僅僅執(zhí)行了一次的話(huà),它應(yīng)該和普通的對(duì)象毫無(wú)差異,體現(xiàn)

14、不出它預(yù)編譯的優(yōu)越性。兩者的區(qū)別:第一:prepareStatement會(huì)先初始化SQL,先把這個(gè)SQL提交到數(shù)據(jù)庫(kù)中進(jìn)行預(yù)處理,多次使用可提高效率。  createStatement不會(huì)初始化,沒(méi)有預(yù)處理,沒(méi)次都是從0開(kāi)始執(zhí)行SQL第二:prepareStatement可以替換變量  在SQL語(yǔ)句中可以包含?,可以用ps=conn.prepareStatement("select * from Cust where ID=?");  int sid=1001;  ps.setInt(1, sid);  rs = ps.ex

15、ecuteQuery();  可以把?替換成變量。  而Statement只能用  int sid=1001;  Statement stmt = conn.createStatement();  ResultSet rs = stmt.executeQuery("select * from Cust where ID="+sid);  來(lái)實(shí)現(xiàn)。JDBC批量更新pstmt.addBatch();的問(wèn)題在數(shù)據(jù)量越大的時(shí)候 越能體現(xiàn)前者的優(yōu)勢(shì) 因?yàn)閿?shù)據(jù)庫(kù)的處理速度是非常驚人的 單次吞吐量很大 執(zhí)行效率極高 addBat

16、ch()把若干sql語(yǔ)句裝載到一起,然后一次送到數(shù)據(jù)庫(kù)執(zhí)行,執(zhí)行需要很短的時(shí)間 而pstmt.executeUpdate() 是一條一條發(fā)往數(shù)據(jù)庫(kù)執(zhí)行的 時(shí)間都消耗在數(shù)據(jù)庫(kù)連接的傳輸上面Statement和PreparedStatement的區(qū)別上面說(shuō)的很細(xì)了,直接說(shuō)PreparedStatement最重要的addbatch()結(jié)構(gòu)的使用. 1.建立鏈接    Connection    connection =getConnection();2.不自動(dòng) Commit  connection.setAutoCommit(fa

17、lse);   3.預(yù)編譯SQL語(yǔ)句,只編譯一回哦,效率高啊PreparedStatement statement = connection.prepareStatement("INSERT INTO TABLEX VALUES(?, ?)");   4.一個(gè)一個(gè)的放,但不執(zhí)行,等放完了一起執(zhí)行/記錄1statement.setInt(1, 1); statement.setString(2, "Cujo"); statement.addBatch();   /記錄2statement.setInt(1, 2); statement.setString(2, "Fred"); statem

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論