歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

JFinal 基本應用 --事務回滾

JFinal事務回滾

1.當時需要用到事務回滾,但是看到網上只有問題,沒有真實的到底怎麼用法。

2.我看了一下文檔,結合了網上的大神的博客。

第一種方法:

Db.tx(new IAtom(){

  @Override

  public boolean run() throw SQLException{

  //在這裡寫要執行的操作,在執行的過程中如果有異常將回滾,如果return false 就也回滾

  return true;

  }

});

我的代碼:

public static void clearScores()  {
        // TODO Auto-generated method stub
        Db.tx(new IAtom() {
            //在執行run的過程中,如果有異常將回滾,或者return false 將回滾
            @Override
            public boolean run() throws SQLException {
                //獲取所有的到期用戶
                List<Associator> assocs = Associator.dao.getAssocsOfScoresExpire();
                for( int i = 0  ; i < assocs.size() ; i ++ ){
                    Associator assoc = assocs.get(i);
                    //在積分明細中寫入記錄存入
                    Map map = new HashMap();
                    map.put("ASSOC_ID",assoc.get(Associator.COLLUMNS.ASSOC_ID));
                    map.put("CREATED_BY","AUTO");
                    map.put("DEAL_TYPE","扣除");
                    map.put("ASSOC_SCORE",assoc.get(Associator.COLLUMNS.ASSOC_SCORE));
                    map.put("DEAL_REASON","積分到期");
                    AssociatorScore.dao.saveScore(map);
                    //修改對應的積分和會員的最近簽到時間
                    assoc.set(Associator.COLLUMNS.ASSOC_SCORE, 0);
                    assoc.set(Associator.COLLUMNS.FIRST_SIGN_TIME, Calendar.getInstance().getTime());
                    assoc.set(Associator.COLLUMNS.MODIFIED_AT, Calendar.getInstance().getTime());
                    //測試能否回滾
                    /*if( i == 1)
                        assoc.remove("ID");*/
                    assoc.update();
                }
                return true;
            }
        });
    }
}

  還有一種方式:

  聲明事務方式:在方法前聲明@Before(Tx.class)

  注:我試了很多次都不管用,最終發現沒有設置攔截器。文檔中寫的比較清楚。

  還有我覺得文檔真心的整理的不夠,不過實現基礎的功能還是可以的。

Jfinal學習之路---Controller使用 http://www.linuxidc.com/Linux/2014-07/104323.htm

JFinal開發8個常見問題 http://www.linuxidc.com/Linux/2015-02/113421.htm

JFinal的詳細介紹:請點這裡
JFinal的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved