SQL語句執行 -- SQL語句的生成 -- Java的StringBuffer類

StringBuffer類和String類一樣,也用來代表字符串。但是StringBuffer的內部實現方式和String不同,StringBuffer在進行字符串的處理時,不生成新的對象,在內存使用上要優於String類。

在實際使用時,如果需要經常對一個字符串進行修改,例如插入、刪除等操作,使用StringBuffer更加適合。

對StringBuffer對象的每次修改都會改變對象自身,這是和String類最大的區別。

1、StringBuffer對象的初始化

使用構造方法進行初始化:

StringBuffer sql_BF = new StringBuffer();

這樣初始化出的StringBuffer對象是一個空的對象。

創建帶有內容的StringBuffer對象:

StringBuffer sb = new StringBuffer("something here");

這樣初始化出的StringBuffer對象的內容就是字符串"something here"。
需要注意的是,StringBuffer和String是不同的類型,也不能直接進行強制類型轉換。

StringBuffer對象和String對象之間相互轉換的代碼如下:

2、StringBuffer的常用方法

StringBuffer類中的方法主要偏重於字符串的變化,例如追加、插入、刪除等。

(1)append方法

該方法的作用是追加內容到當前StringBuffer對象的末尾,類似於字符串的連接。調用該方法以後,StringBuffer對象的內容也發生改變。

使用該方法進行字符串的連接,將比String更加節約資源。因此,選擇使用StringBuffer來進行SQL語句的連接,例如

StringBuffer sql_BF = new StringBuffer();
		
sql_BF.append("INSERT INTO entity_alarm")
.append("(id, source, alarm, status, assign, devicetype, alarmtype, occur_time, collect_time, clear_time, clear_insert, tkt_id, sms_send_flag)")
.append("VALUES")
.append("(")
.append("nextval('seq_globalid')")
.append(",'")
.append(entityAlarm.getSource())
.append("','")
.append(entityAlarm.getAlarm())
.append("','")
.append(entityAlarm.getStatus())
.append("','")
.append(entityAlarm.getAssign())
.append("','")
.append(entityAlarm.getDeviceType())
.append("','")
.append(entityAlarm.getAlarmType())
.append("','")
.append(entityAlarm.getOccur_time())
.append("','")
.append(entityAlarm.getCollect_time())
.append("','")
.append(entityAlarm.getClear_time())
.append("','")
.append(entityAlarm.getClear_insert())
.append("','")
.append(entityAlarm.getTkt_id())
.append("',")
.append(entityAlarm.getSms_send_flag())
.append(")");

這樣對象 sql_BF 的值就是字符串:

(2)deleteCharAt方法

public StringBuffer deleteCharAt(int index)

該方法的作用是刪除指定位置的字符,然後將剩餘的內容形成新的字符串。例如: 

StringBuffer sb = new StringBuffer("something here");
sb.deleteCharAt(1);

該代碼的作用是刪除字符串對象sb中索引值爲1的字符,也就是刪除第二個字符,剩餘的內容組成一個新的字符串。所以對象sb的值變爲"smething here" 。

(3)delete方法

public StringBuffer delete(int start, int end)

該方法的作用是刪除指定區間以內的所有字符,包含start,不包含end索引值的區間。例如:

StringBuffer sb = new StringBuffer("something here");
sb.delete(1, 4);

該代碼的作用是刪除索引值1(包括)到索引值4(不包括)之間的所有字符,剩餘的字符形成新的字符串。則對象sb的值是"shing here"。

(4)insert方法

(5)reverse方法

(6)setCharAt方法

(7)trimToSize方法



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章