orm選型,為什么選擇mybatis?


 

1、JDBC

Class.forName("com.mysql.jdbc.Driver");
Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/demo", "root", "123456");
PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql);
pstmt.setString(1, "");
pstmt.executeUpdate();
pstmt.close();
conn.close();

傳統的JDBC做一次數據庫操作,需要4個操作,類加載、獲取連接、執行sql、關閉連接。 它的工作量大,業務和技術混合在一起,並且需要手動關閉連接。對於使用者來說,它非常不友好。

2、什么是ORM模型?

 orm英文意思是對象關系映射 Object-relation-mapper,簡單理解就是將數據庫表與java實體對象做一個映射。

 orm的優點:符合面向對象編程;技術與業務解耦,開發時不需要關注數據庫的連接與釋放;

 常用的orm模型有:hibernate和mybatis,互聯網公司一般都使用mybatis。

 hibernate的缺點:全表映射;無法自定義組裝sql;對復雜sql的支持弱,對sql調優不友好;不支持存儲過程;性能差。

 hibernate的優點:適合小型系統,開發快。

3、mybatis的優缺點

  優點:基於底層sql,sql優化方便;容易學習,高度靈活;

  缺點:代碼量大【可利用MGB —— mybatis代碼生成器】

4、mybatis的三要素

  mapper.xml、dao接口、entity實體類。

5、mybatis一次連接

  SqlSessionFactoryBuilder:讀取配置信息創建SqlSessionFactory,它的生命周期僅僅限於創建。

  SqlSessionFactory:它用來創建Sqlsession。它的生命周期是整個應用,在應用啟動時創建,應用停止時消亡。

  Sqlsession:一次sql會話,可以直接發送sql執行,也可以調用dao與mapper映射的sql語句執行,它是線程不安全的,必須保證線程獨享。

6、mybatis的配置方式

  基於xml:即編寫mapperXml文件。

  基於注解:即利用@Select @Insert @update 等等。 這種方式基本上不使用。它有很多缺點:編寫負責,主要是字符串拼接麻煩,不易於編寫負責sql語句;如果業務變動,代碼調整幅度太大,即不易於擴展,伸縮性差。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM