兩條sql語句事務
我這里有一段Java代碼,是用jdbc對MySQL數據庫進行操作的。
要特別注意的是:這里的synchronized 就是同步的關鍵字
實例如下:
/**
* 進貨
*
* @param order
* @return
* @throws SQLException
*/
public synchronized int jinhuo(Order order) throws SQLException {
int row = 0;
int primayKey = 0;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = *nection();
*oCommit(false);
/** 對Order操作: */
String sql = "insert into TOrder values(null,default,?,default,default,default,default,1)";
pstmt = *eStatement(sql);
*(1, *rator().getOperatorID());
*eUpdate();
sql = "select last_insert_id()";
pstmt = *eStatement(sql);
rs = *eQuery();
if (*()) {
primayKey = *(1);
}
/** 對OrderDetail操作: */
for (OrderDetail od : *erDetailList()) {
sql = "insert into OrderDetail values(?,?,?)";
pstmt = *eStatement(sql);
*(1, primayKey);
*(2, *icine().getMedicineID());
*(3, *ntity());
*eUpdate();
/** 對Medicine操作: */
sql = "update Medicine set medicineStock=medicineStock+? where medicineID=?";
pstmt = *eStatement(sql);
*(1, *ntity());
*(2, *icine().getMedicineID());
row = *eUpdate();
*();
}
} catch (SQLException e) {
*tackTrace();
*ck();
} finally {
*(null, pstmt, conn);
}
if (row != 0)
return primayKey;
else
return row;
}
Ps:“用心做問題、吾手編吾心。”絕對原創、拒絕轉載,希望能幫到你!
如果還有疑問之處、請追問。