Java程序中,假如程序中N个方法放在一个java事务中,那么可能这几个方法中,每个方法都要用到某个值。并且作为一个事物,这个值应该是同一个值,而不应该会被多线程混乱,这时,方法间传值时,单个字符串,就要用到StringBuffer来传,传2个甚至多个字符串,就要用到Map(注意,用MAP传值时,map中的参数,要是Object类型的,所以如果map中要存放2个字符串,那么先将这2个字符串分别放到2个StringBuffer里面,再把这2个StringBuffer放到Map里)这2个StringBuffer在方法里面建就行了(局部变量),传递的时候传递MAP参数。
例:
同步单个字符串(mobilecode ):
publicintdabao(String tongdaoid, String mainid,StringBuffer sb,Connection conn)throwsException {
....
while(rs.next()) {
mobilecode = rs.getString("MOBILECODE");
}
...
sb.append(mobilecode);//将while中得到的mobilecode放到了StringBuffer中,下面send中调用时用到的StringBuffer用到的就是这里的
publicintsend(String tongdaoid, String mainid, Connection conn)throwsException {//调用上面加进来的StringBuffer
intsjfsnumber =0;
StringBuffer sb =newStringBuffer();
sjfsnumber = dabao(tongdaoid, mainid,sb, conn);//send调用dabao
}
同步2个字符串(mobilecode ,clientid):
dabao(){
StringBuffer b1=newStringBuffer();
StringBuffer b2=newStringBuffer();
b1.append(mobilecode );//将mobilecode 放到b1中
b2.append(clientid);//将clientid放到b2中
Map p=newHashMap();
p.put("mobilecode1",b1);//前面双引号引起来的,是到时候要得到p时候get的名字,要用双引号引起
p.put("clientid1",b2);
//这样,就把2个string都放到map里面去了,下面来调用
}
send(Map p){
String a=p.get("mobilecode1");//get后面要加引号
String b=p.get("clientid1");
}
扩展:
public void tx_duanxinAdd(Map p) {
p.put("key",value)还可用于数据库查询,假如查询出来ibatis后放到某个
p.put("字段名",字段值)
p.remove("字段名"),即把这个字段值清空
p.get("字段名")