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