首頁>Club>

回覆列表
  • 1 # 金色海上海

    我覺得沒有必要再學習mybatis,太過時了,看不上那種sql寫法,現在應該學習sqltoy-orm!沒有對比就沒有傷害!

    只提供一個sql風格圖不便於瞭解更多,再增加幾張圖!

    https://github.com/chenrenfei/sagacity-sqltoy

  • 2 # 一個存在感小透明

    現在做的專案剛好使用的是SSM框架,受益於mybatis以及mybatis generator的自動化,但是也必須承認mybatis generator自動生成的一些語句在部分場景受限,有時需要開發者去手動寫sql語句,封裝成函式,給上層呼叫。

    首先介紹下mybatis generator。

    與hibernate相比,很多人覺得mybatis使用的時候需要開發者自己編寫xml檔案很繁瑣,但是藉助mybatis generator這個外掛,這份xml生成工作完全可以託管。只需要在eclipse或者intellij的market裡安裝mybatis generator外掛,就可以使用。

    如果不想安裝外掛,也可通過mvn命令(mvn mybatis-generator:generate)來使用這個外掛。

    四個基本檔案。

    其中

    儲存了實際的sql語句,下圖是我從我們實際工程中截的圖,對應了

    Mapper.java

    檔案中的update()和delete()兩個方法。

    在介紹完上面四個檔案之後,如果你有新的需求,需要自己寫sql語句的時候,你就應該知道該怎麼辦了。

    首先是在

    檔案中宣告一個方法,然後在

    Mapper.xml

    檔案中,把你的方法寫作動態的sql語句,我再貼一張我寫的截圖。這個截圖就是首先在

    Mapper.java

    檔案中增加getStabilityOrderByPhoneId方法,然後再到xml檔案裡增加sql語句就可以用啦。

  • 3 # 此生唯一

    mybatis作為JAVA開發最流行的ORM(object renational mapping)框架,能夠將JAVA實體類和資料庫中的欄位結合對映起來,達到直接操作資料庫的目的!

    需要明確的是,所有的ORM框架都基於JAVA原生的JDBC API做了封裝,所以首先我們來了解下jdbc是怎麼操作資料庫的?

    1,註冊驅動!

    2,建立connection!

    3 ,建立操作語句statement!

    4,執行statement!

    5,封裝結果resultset!

    在mybatis容器初始化的時候,會自動進行驅動註冊,並把xml中配置的sql語句按照名稱空間(就是介面名)加sql ID的方式作為key,sql語句作為value放入hashMap中儲存起來,等到使用的時候從hashmap中取出,經過反射處理得到原生的sql語句,在使用jdbc executor進行執行!

    執行過程中,如果有parameterType對映錯誤,或者SQL語句錯誤,則會丟擲異常到應用層!

    自己總結的mybatis的常用功能:

    1,使用xml檔案配置使用對映

    2,使用typeAliases修改類型別名

    3,使用外掛進行方法攔截

    4,使用型別控制代碼(typehandlers)匹配java的引數或者返回值型別

    5,使用環境(environments)配置多個不同的環境,以便使用不同的資料庫

    6,使用事務管理器(Transaction)管理事務

    7,使用動態SQL

    8,處理一對一關係使用聯合(association),處理一對多使用聚集(cellection)

    9,使用識別器(discriminator)對產生的結果集進行篩選(類似switch語句)

    10,使用cache開啟快取

  • 中秋節和大豐收的關聯?
  • 王維的哪一句詩讓你記憶猶新?