java對數(shù)據(jù)庫的增刪改查 用java不寫實(shí)體類,怎么進(jìn)行數(shù)據(jù)庫增刪改查的操作?
用java不寫實(shí)體類,怎么進(jìn)行數(shù)據(jù)庫增刪改查的操作?首先,聲明數(shù)據(jù)庫的添加、刪除和修改不一定與Java實(shí)體類相關(guān)。當(dāng)我們第一次學(xué)習(xí)數(shù)據(jù)庫時,我們根本沒有使用實(shí)體類。我們直接操作SQL來改變數(shù)據(jù)。隨著我
用java不寫實(shí)體類,怎么進(jìn)行數(shù)據(jù)庫增刪改查的操作?
首先,聲明數(shù)據(jù)庫的添加、刪除和修改不一定與Java實(shí)體類相關(guān)。當(dāng)我們第一次學(xué)習(xí)數(shù)據(jù)庫時,我們根本沒有使用實(shí)體類。我們直接操作SQL來改變數(shù)據(jù)。隨著我們慢慢的學(xué)習(xí),我們開始使用這個框架。框架的使用是為了簡化開發(fā)??梢哉f,幾乎所有的數(shù)據(jù)庫開發(fā)框架都需要引入實(shí)體類。只有這樣,實(shí)體類和數(shù)據(jù)庫之間才能有一種“親密”的關(guān)系。
java如何控制多人同時進(jìn)行修改數(shù)據(jù)庫操作?
首先,我理解多人同時修改是并發(fā)修改。根據(jù)并發(fā)級別的不同,可以分為線程級、進(jìn)程級和應(yīng)用級。對于不同的級別有如下不同的控制策略:
線程級別,這就是我們通常所說的多線程編程。最簡單的方法是使用synchronize關(guān)鍵字或lock class進(jìn)行悲觀鎖操作這種方法會使線程不必要地等待資源沖突不明顯的場景。因此,如果沖突只是一個小概率事件,我們可以考慮使用JUC包中的原子類通過CAS;
進(jìn)程級實(shí)現(xiàn)樂觀鎖定。這里的流程級別是指分布式部署下的多個實(shí)例。這個場景的特點(diǎn)是運(yùn)行的代碼是相同的,所以它遵循相同的計(jì)算規(guī)則。通常,外部中間件用于并發(fā)控制。我們可以考慮借用redis Zookeeper等中間件實(shí)現(xiàn)分布式鎖;
應(yīng)用層。所謂的應(yīng)用程序級別是指兩個完全不同的應(yīng)用程序。這種情況可以分為兩種情況:一種是預(yù)先約定鎖規(guī)則,或者參照進(jìn)程級使用公共組件訪問數(shù)據(jù)庫;另一種是通過數(shù)據(jù)庫層進(jìn)行控制,包括使用for Update進(jìn)行行鎖定,并更新x set y=Z,其中id=ABC和y={修改前的值}(在本例中,它實(shí)際上得到了編程規(guī)范的同意)。