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方法



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