H&M比較,finally&return執行順序

1.Hibernate實體的狀態有哪幾種及解釋,它與mybatis區別?

hibernate實體有三種狀態:
Transient(數據庫中沒有與實體對象對應的記錄)、
Persistent(實體對象與數據庫中的記錄相關聯,會依據persistent狀態的實體對象的屬性變化而改變數據庫中相對應的記錄)、
Detached(遊離態實體對象與數據庫中的記錄沒有直接聯繫,對其所做的任何修改將不會影響到到數據庫中的數據.);

mybatis:
優點——可以進行更爲細緻的SQL優化;
缺點——需要維護SQL和結果映射,不同的數據庫需要寫不同SQL,數據庫移植性不好、擴展性差;
Hibernate:
優點——DAO層開發簡單,與數據庫具體的關聯都在XML中,所以HQL對具體是用什麼數據庫並不是很關心,有良好的映射機制,開發者無需關心SQL的生成與結果映射,數據庫移植性很好;
缺點——修改sql語句比較麻煩,不便於sql優化;
相同點:
都有二級緩存機制,也可以使用第三方緩存。

2.finally和return哪個先執行?(finally先執行但不會影響return的結果)

public class ReturnAndFinally {
    public static int getNum() {
        int a=100;
        try {
            System.out.println("進入try");
            return a;
        } catch (Exception e) {
        } finally {
            System.out.println("進入finally");
            a++;
            System.out.println("結束finally時的a:"+a);
        }
        return 0;
    }
    public static void main(String[] args) {
        System.out.println("return給調用者的a:"+getNum());
    }
進入try
進入finally
結束finally時的a:101
return給調用者的a:100
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章