自己實現的TransactionManager

2021-08-22 06:53:25 字數 1628 閱讀 3577

[b]背景:[/b]

[color=red]目前有乙個系統,系統已經寫好了,但是要不停的新增新的功能,用struts,

業務邏輯寫在action中,以後可能增加一層service。

業務處理和持久層沒有使用任何框架,目前是用dao擔任業務處理加持久層雙重操作,

但是有些業務處理很複雜,固設計了乙個事務處理框架,大家幫我看下有沒有執行緒安全的問題,

第一次使用threadlocal,請多指教。[/color]

[b]connection holder **[/b]

[code]public class connectionholder

public void setisreadonly(boolean isreadonly)

public connection getconnection()

public void setconnection(connection connection)

public boolean isrollback()

public void setrollback(boolean rollback)

}[/code]

[b]transactionmanager **[/b]

[code]public class transactionmanager catch (exception e)

}public static void begin()

public static void begin(boolean isreadonly)

holder = new connectionholder();

holder.setconnection(con);

holder.setisreadonly(isreadonly);

_thread.set(holder);

} catch (exception e)

}private static void commit()

} catch (exception e) finally

}public static void end()

public static void rollback()

con.rollback();

con.setautocommit(true);

} catch (runtimeexception e) catch (exception e) finally

}private static connectionholder getconnectionholder()

public static connection openconnection()

}[/code]

[b]action 部分**[/b]

[b]dao 部分**[/b]

[code]public static void deleteresourcezyfb() throws exception finally

}[/code]

以太坊client的transaction處理

以太坊客戶端 p2p 協議是乙個相當標準的加密貨幣協議,並且能夠容易地為其它加密貨幣使用 僅有的改動是引入了上述的 幽靈 協 議。以太坊客戶端基本上是被動的 如果沒有被觸發,它自己做的僅有工作是呼叫網路守護程序維護連線及定期傳送訊息索要以當前 區塊為父區塊的區塊。然而,該客戶端同時會更強大 與只儲存...

實現自己的print

在嵌入式開發中,常常會通過串列埠列印一些資訊到pc終端,這就需要實現自己的printf函式,下面介紹列印函式print的實現。print.h ifndef print h define print h void print char fmt,void printch char ch void pri...

實現自己的Promise polyfill

功能清單 promise.prototype.then promise.prototype.catch promise.reject promise.resolve promise.all promise.race promise.prototype.finally 參考 prmoises a 規範...