銀行轉賬是是兩個賬戶之間同時進行操作的,一方賬戶資金減少的同時另外一方的資金就要增加同樣的金額。如果一方操作失敗那麼另外一方的操作就不會成功。也即是需要將這樣的兩個操作放在乙個事務當中。只是這裡使用到了層的概念。既然設計到轉賬那麼肯定有乙個賬戶類(dto資料傳輸物件),還有乙個類是專門用來訪問該賬戶的(dao資料訪問物件)。而我們所需要進行的轉賬操作則是可以放在服務層進行處理(service)。
dto(資料傳輸物件)
public
class account
public
account(string account, double cash)
public
intgetid()
public
void
setid(int id)
public string getaccount()
public
void
setaccount(string account)
public
double
getcash()
public
void
setcash(double cash)
}
dao(資料訪問物件)
public
class accountdao implements basedao
@override
public boolean insert(account t)
@override
public boolean delete(account t)
@override
public boolean update(account t)
@override
public account findbyid(final account t)
} catch (sqlexception e)
return t;
}}, t.getid());
}@override
public listfindall()
}
當然這裡使用了一些工具類,比如連線資料庫的類。但是主要的操作是上面的三個類。service層
public
class
accountservice
extends
baseconn
} catch (sqlexception e) catch (sqlexception e1)
e.printstacktrace();
}} else
}else
}public
static
void
main(string args)
}
業務層使用事務
以前一直覺得東西,框架都不在那裡嗎。我幹嘛要深入的去了解實現的原理 有很大一部分可能是因為知識的薄弱,然後看到了感覺也就那樣,他不就是一直那樣存在的 我會使用不就可以了。現在知道,其實出來混遲早要還的,當真正使用的時候才知道你不懂原理使用起來雖然有時候是把乙個功能實現了,但是卻違背了這樣使用的初衷 ...
JDBC之轉賬操作(運用事務)
若是普通的轉賬操作我們能想到的就是運用兩次update public static void transferaccounts int id1,int id2,int money id為id1的人向id為id2的人轉賬money元 catch exception e finally catch ex...
php mysqli事務控制實現銀行轉賬例項
事務控制,也就是說所有的語句執行成功後,才會提交。否則,如果前面有語句執行成功,而後面沒有執行成功,則回滾到執行之前的狀態。通過銀行轉賬的案例來說明這個應用。乙個賬號轉了錢出去,另乙個賬號必須有錢轉入,這樣才算成功。代程式設計客棧碼如下 php 1 建立資料庫連線物件 mysqli new mysq...