歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java間數據的同步(StringBuffer,Map)

Java間數據的同步(StringBuffer,Map)

日期:2017/3/1 10:51:38   编辑:Linux編程

Java程序中,假如程序中N個方法放在一個java事務中,那麼可能這幾個方法中,每個方法都要用到某個值。並且作為一個事物,這個值應該是同一個值,而不應該會被多線程混亂,這時,方法間傳值時,單個字符串,就要用到StringBuffer來傳,傳2個甚至多個字符串,就要用到Map(注意,用MAP傳值時,map中的參數,要是Object類型的,所以如果map中要存放2個字符串,那麼先將這2個字符串分別放到2個StringBuffer裡面,再把這2個StringBuffer放到Map裡)這2個StringBuffer在方法裡面建就行了(局部變量),傳遞的時候傳遞MAP參數。

例:

同步單個字符串(mobilecode ):

  1. public int dabao(String tongdaoid, String mainid, StringBuffer sb,Connection conn) throws Exception {
  2. ....
  3. while (rs.next()) {
  4. mobilecode = rs.getString("MOBILECODE");
  5. }
  6. ...
  7. sb.append(mobilecode); //將while中得到的mobilecode放到了StringBuffer中,下面send中調用時用到的StringBuffer用到的就是這裡的
  1. public int send(String tongdaoid, String mainid, Connection conn)throws Exception { //調用上面加進來的StringBuffer
  2. int sjfsnumber = 0;
  3. StringBuffer sb = new StringBuffer();
  4. sjfsnumber = dabao(tongdaoid, mainid, sb, conn); //send調用dabao
  5. }

同步2個字符串(mobilecode ,clientid):

  1. dabao(){
  2. StringBuffer b1=new StringBuffer();
  3. StringBuffer b2=new StringBuffer();
  4. b1.append(mobilecode ); //將mobilecode 放到b1中
  5. b2.append(clientid); //將clientid放到b2中
  6. Map p=new HashMap();
  7. p.put("mobilecode1",b1); //前面雙引號引起來的,是到時候要得到p時候get的名字,要用雙引號引起
  8. p.put("clientid1",b2);
  9. //這樣,就把2個string都放到map裡面去了,下面來調用
  10. }
  11. send(Map p){
  12. String a=p.get("mobilecode1"); //get後面要加引號
  13. String b=p.get("clientid1");
  14. }

擴展:

public void tx_duanxinAdd(Map p) {

p.put("key",value)還可用於數據庫查詢,假如查詢出來ibatis後放到某個<select id裡面,可以用

p.put("字段名",字段值)

p.remove("字段名"),即把這個字段值清空

p.get("字段名")

Copyright © Linux教程網 All Rights Reserved