mybatis plus該不該用 SpringData JPA也能寫sql,為什么還要用mybatis?
SpringData JPA也能寫sql,為什么還要用mybatis?在頭條上問這個問題真是太醉了。。順便說一句,胡說八道太多了。國內(nèi)設(shè)計理念為表驅(qū)動??傊?,邏輯是由數(shù)據(jù)表決定的,實現(xiàn)是由模型來完成的
SpringData JPA也能寫sql,為什么還要用mybatis?
在頭條上問這個問題真是太醉了。。順便說一句,胡說八道太多了。
國內(nèi)設(shè)計理念為表驅(qū)動。總之,邏輯是由數(shù)據(jù)表決定的,實現(xiàn)是由模型來完成的。事實上,這與面向?qū)ο蟮乃枷虢厝幌喾础4蠖鄶?shù)工程師手中所謂的mybatis的靈活性是,他們不需要考慮如何設(shè)計模型。”不管怎樣,我可以用原生SQL來解決這個問題。模型設(shè)計太差了,只能靠SQL來修正。JPA是完全對象驅(qū)動的思想。早期設(shè)計的缺陷會制約后續(xù)的開發(fā),不同的數(shù)據(jù)庫可以用不同的方式實現(xiàn)(事實上,即使redis也是一樣的)?;卮鹨恍┏R姷膯栴}。
1. JPA表的連接行為具有不確定性和難以控制性。
您確定使用了spring數(shù)據(jù)JPA嗎?不知道有實體圖嗎?當(dāng)一個傻瓜達(dá)到這個水平時,他能做什么。
2. JPA子查詢不容易實現(xiàn)。
我想你沒用過,是嗎?spring數(shù)據(jù)JPA的子查詢不僅可以單獨定義視圖,還可以進(jìn)行子查詢,甚至可以直接使用jpql。
3. JPA不容易優(yōu)化。
我真的不相信99%的優(yōu)化能超過spring data JPA的優(yōu)化。特別是,普通程序員能否停止談?wù)搩?yōu)化?他們甚至搞不懂MySQL的鎖。表設(shè)計就像一堆廢話,他們?nèi)匀幻刻焓褂迷鶶QL。你覺得他們很棒嗎?JPA可以將表屬性反映到對象。當(dāng)然,運行時優(yōu)化是有基礎(chǔ)的。ORM的發(fā)展空間太大了。任何有點技術(shù)知識的人都知道ORM將擁有越來越多的優(yōu)勢。有一點經(jīng)驗的程序員都知道,在談?wù)撈渌酥埃菚r候先談?wù)摿己玫木S護(hù)了。解決性能問題的方法太多了。
最后,難道你不知道ORM cqrs現(xiàn)在是提倡的嗎?請問,有沒有什么復(fù)雜的問題沒有原生SQL的介入是無法解決的。
Java的前景如何,好不好自學(xué)?
作為IT行業(yè)的從業(yè)者,我也出版過Java編程書籍,所以讓我來回答這個問題。
首先,Java語言的應(yīng)用前景良好。經(jīng)過多年的發(fā)展,Java語言已經(jīng)構(gòu)建了一個龐大的語言生態(tài),整個IT行業(yè)都有大量的Java程序員。Java語言性能穩(wěn)定,可擴(kuò)展性強(qiáng),是大型互聯(lián)網(wǎng)平臺的常用語言。
Java語言是一種純面向?qū)ο蟮木幊陶Z言,因此學(xué)習(xí)Java語言的重點是“抽象”。Java語言有三種重要的抽象需要掌握,即類(函數(shù)和狀態(tài)的抽象)、抽象類(也稱為半抽象)和接口(也稱為完全抽象)。此外,我們還需要掌握封裝、繼承和多態(tài)三個重要的面向?qū)ο筇匦浴?/p>
對于初學(xué)者,尤其是自學(xué)者來說,很難從一開始就學(xué)習(xí)java。如果有人能在學(xué)習(xí)的早期指導(dǎo)你,你會節(jié)省很多學(xué)習(xí)時間。同時,在學(xué)習(xí)Java之前,要咨詢專業(yè)人士,制定詳細(xì)的學(xué)習(xí)計劃,重點是學(xué)習(xí)方向的選擇和階段性目標(biāo)的制定。
最后,無論是學(xué)習(xí)Java還是其他編程語言,都要多做實驗,通過大量的實驗逐步建立自己的編程思想,增強(qiáng)解決問題的能力。