筆試面試比較輕松,筆試主要是一些java、數(shù)據(jù)庫、算法基礎(chǔ),不會(huì)太難,好好準(zhǔn)備即可; 面試同樣會(huì)涉及到上面提到的,可能會(huì)更深入一些,但是也不會(huì)太難。
面試官問的面試題: 問題:如何理解數(shù)據(jù)庫的事務(wù),在實(shí)際應(yīng)用中如何處理
答案:TPL:事務(wù)控制語句
start transaction:開啟一次事務(wù)
rollback:回滾
commit:提交事務(wù)
JDBC中與事務(wù)有關(guān)的方法:
Connection.setAutoCommit(boolean b)
Connection.rollback()
Connection.rollback(Savepoint sp)
Connection.commit();
*****四、事務(wù)的特性(隔離級(jí)別)
A:原子性。說明事務(wù)是一個(gè)不可分割的單位。
C:一致性.事務(wù)必須使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變換到另外一個(gè)一致性狀態(tài).(比如轉(zhuǎn)賬)
*I:隔離性。一個(gè)事務(wù)不能被其他事務(wù)打擾。
D:持久性。事務(wù)一旦提交,就應(yīng)該被永久保存起來。
如果不考慮事務(wù)的隔離級(jí)別,會(huì)出現(xiàn)以下“不正確”的情況:
臟讀:指一個(gè)事務(wù)讀到了另一個(gè)事務(wù)中未提交的數(shù)據(jù)。
不可重復(fù)讀:針對(duì)一條記錄的,同一條記錄前后不一樣
虛讀(幻讀):針對(duì)一張表,前后讀到的記錄條數(shù)不一樣。
MySQL中控制事務(wù)隔離級(jí)別的語句:
select @@tx_isolation; //查看當(dāng)前的事務(wù)隔離級(jí)別
set transaction isolation level 你的級(jí)別(四種之一);//設(shè)置隔離級(jí)別
隔離級(jí)別的分類:
READ UNCOMMITTED(未授權(quán)讀):臟讀、不可重復(fù)讀、虛讀都有可能發(fā)生。
READ COMMITTED(授權(quán)讀):能避免臟讀,不可重復(fù)讀、虛讀都有可能發(fā)生。
REPEATABLE READ(可重復(fù)讀):能避免臟讀、不可重復(fù)度,虛讀都有可能發(fā)生。
SERIALIZABLE(序列化):能避免臟讀、不可重復(fù)度、虛讀。