『壹』 Struts2有什麼優缺點 hibernate有什麼優缺點 spring呢
struts框架具有組件的模塊化,靈活性和重用性的優點,同時簡化了基於MVC的web應用程序的開發。
優點:
Struts跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟體,這是它的一大優點。使開發者能更深入的了解其內部實現機制。
除此之外,Struts的優點主要集中體現在兩個方面:Taglib和頁面導航。Taglib是Struts的標記庫,靈活動用,能大大提高開發效率。另外,就目前國內的JSP開發者而言,除了使用JSP自帶的常用標記外,很少開發自己的標記,或許Struts是一個很好的起點。
關於頁面導航,我認為那將是今後的一個發展方向,事實上,這樣做,使系統的脈絡更加清晰。通過一個配置文件,即可把握整個系統各部分之間的聯系,這對於後期的維護有著莫大的好處。尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。
另外,struts是業界"標准"(很多成功案例),學習資源豐富,HTML標簽非常優秀
缺點:
Taglib是Struts的一大優勢,但對於初學者而言,卻需要一個持續學習的過程,甚至還會打亂你網頁編寫的習慣,但是,當你習慣了它時,你會覺得它真的很棒。
Struts將MVC的Controller一分為三,在獲得結構更加清晰的同時,也增加了系統的復雜度。
ActionForms使用不便、無法進行單元測試(StrutsTestCase只能用於集成)
Struts跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟體,這是它的一大優點。使開發者能更深入的了解其內部實現機制。 Struts開放源碼框架的創建是為了使開發者在構建基於Java Servlet和JavaServer Pages(JSP)技術的Web應用時更加容易。Struts框架為開放者提供了一個統一的標准框架,通過使用Struts作為基礎,開發者能夠更專注於應用程序的商業邏輯。Struts框架本身是使用Java Servlet和JavaServer Pages技術的一種Model-View-Controller(MVC)實現.
具體來講,
Struts的優點有:
1. 實現MVC模式,結構清晰,使開發者只關注業務邏輯的實現.
2. 有豐富的tag可以用 ,Struts的標記庫(Taglib),如能靈活動用,則能大大提高開發效率。另外,就目前國內的JSP開發者而言,除了使用JSP自帶的常用標記外,很少開發自己的標記,或許Struts是一個很好的起點。
3. 頁面導航.頁面導航將是今後的一個發展方向,事實上,這樣做,使系統的脈絡更加清晰。通過一個配置文件,即可把握整個系統各部分之間的聯系,這對於後期的維護有著莫大的好處。尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。
4. 提供Exception處理機制 .
5. 資料庫鏈接池管理
6. 支持I18N
缺點:
一、 轉到展示層時,需要配置forward,每一次轉到展示層,相信大多數都是直接轉到jsp,而涉及到轉向,需要配置forward,如果有十個展示層的jsp,需要配置十次struts,而且還不包括有時候目錄、文件變更,需要重新修改forward,注意,每次修改配置之後,要求重新部署整個項目,而tomcate這樣的伺服器,還必須重新啟動伺服器,如果業務變更復雜頻繁的系統,這樣的操作簡單不可想像。現在就是這樣,幾十上百個人同時在線使用我們的系統,大家可以想像一下,我的煩惱有多大。
二、 Struts 的Action必需是thread-safe方式,它僅僅允許一個實例去處理所有的請求。所以action用到的所有的資源都必需統一同步,這個就引起了線程安全的問題。
三、 測試不方便. Struts的每個Action都同Web層耦合在一起,這樣它的測試依賴於Web容器,單元測試也很難實現。不過有一個Junit的擴展工具Struts TestCase可以實現它的單元測試。
四、 類型的轉換. Struts的FormBean把所有的數據都作為String類型,它可以使用工具Commons-Beanutils進行類型轉化。但它的轉化都是在Class級別,而且轉化的類型是不可配置的。類型轉化時的錯誤信息返回給用戶也是非常困難的。
五、 對Servlet的依賴性過強. Struts處理Action時必需要依賴ServletRequest 和ServletResponse,所有它擺脫不了Servlet容器。
六、 前端表達式語言方面.Struts集成了JSTL,所以它主要使用JSTL的表達式語言來獲取數據。可是JSTL的表達式語言在Collection和索引屬性方面處理顯得很弱。
七、 對Action執行的控制困難. Struts創建一個Action,如果想控制它的執行順序將會非常困難。甚至你要重新去寫Servlet來實現你的這個功能需求。
八、 對Action 執行前和後的處理. Struts處理Action的時候是基於class的hierarchies,很難在action處理前和後進行操作。
九、 對事件支持不夠. 在struts中,實際是一個表單Form對應一個Action類(或DispatchAction),換一句話說:在Struts中實際是一個表單只能對應一個事件,struts這種事件方式稱為application event,application event和component event相比是一種粗粒度的事件。
Struts重要的表單對象ActionForm是一種對象,它代表了一種應用,這個對象中至少包含幾個欄位,這些欄位是Jsp頁面表單中的input欄位,因為一個表單對應一個事件,所以,當我們需要將事件粒度細化到表單中這些欄位時,也就是說,一個欄位對應一個事件時,單純使用Struts就不太可能,當然通過結合JavaScript也是可以轉彎實現的。
2.Hibernate
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。
Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。
大多數開發機構經常採取創建各自獨立的數據持久層。一旦底層的數據結構發生改變,那麼修改應用的其餘部分使之適應這種改變的代價將是十分巨大的。Hibernate適時的填補了這一空白,它為Java應用提供了一個易用的、高效率的對象關系映射框架。hibernate是個輕量級的持久性框架,功能卻非常豐富。
優點:
a.Hibernate 使用 Java 反射機制 而不是位元組碼增強程序來實現透明性。
b.Hibernate 的性能非常好,因為它是個輕量級框架。 映射的靈活性很出色。
c.它支持各種關系資料庫,從一對一到多對多的各種復雜關系。
缺點:它限制您所使用的對象模型。(例如,一個持久性類不能映射到多個表)其獨有的界面和可憐的市場份額也讓人不安,盡管如此,Hibernate 還是以其強大的發展動力減輕了這些風險。其他的開源持久性框架也有一些,不過都沒有 Hibernate 這樣有市場沖擊力。
上面回貼情緒有點激動,希望諒解,我不是因為有人批評Hibernate而感到不快,而是因為帖子裡面的觀點實在讓我覺得荒謬。不管覺得Hibernate好也吧,不好也吧,我唯一覺得遺憾的是,在中文論壇裡面找不到一個對Hibernate的真正高水平的評價。在TSS上有一個關於Hibernate的hot thread,跟了幾百貼,其中包括Hibernate作者Gavin和LiDO JDO的CTO,對於JDO和Hibernate有過一些激烈的爭論,我曾經耐心的看了一遍,仍然沒有發現針對Hibernate真正有力的攻擊,那些所謂的攻擊無非針對Hibernate沒有一個GUI的配置工具,沒有商業公司支持,沒有標准化等等這些站不住腳的理由。
補充幾點我的意見:
一、Hibernate是JDBC的輕量級的對象封裝,它是一個獨立的對象持久層框架,和App Server,和EJB沒有什麼必然的聯系。Hibernate可以用在任何JDBC可以使用的場合,例如Java應用程序的資料庫訪問代碼,DAO介面的實現類,甚至可以是BMP裡面的訪問資料庫的代碼。從這個意義上來說,Hibernate和EB不是一個范疇的東西,也不存在非此即彼的關系。
二、Hibernate是一個和JDBC密切關聯的框架,所以Hibernate的兼容性和JDBC驅動,和資料庫都有一定的關系,但是和使用它的Java程序,和App Server沒有任何關系,也不存在兼容性問題。
三、Hibernate不能用來直接和Entity Bean做對比,只有放在整個J2EE項目的框架中才能比較。並且即使是放在軟體整體框架中來看,Hibernate也是做為JDBC的替代者出現的,而不是Entity Bean的替代者出現的,讓我再列一次我已經列n次的框架結構:
傳統的架構:
1) Session Bean <-> Entity Bean <-> DB
為了解決性能障礙的替代架構:
2) Session Bean <-> DAO <-> JDBC <-> DB
使用Hibernate來提高上面架構的開發效率的架構:
3) Session Bean <-> DAO <-> Hibernate <-> DB
就上面3個架構來分析:
1、內存消耗:採用JDBC的架構2無疑是最省內存的,Hibernate的架構3次之,EB的架構1最差。
2、運行效率:如果JDBC的代碼寫的非常優化,那麼JDBC架構運行效率最高,但是實際項目中,這一點幾乎做不到,這需要程序員非常精通JDBC,運用Batch語句,調整PreapredStatement的Batch Size和Fetch Size等參數,以及在必要的情況下採用結果集cache等等。而一般情況下程序員是做不到這一點的。因此Hibernate架構表現出最快的運行效率。EB的架構效率會差的很遠。
3、開發效率:在有JBuilder的支持下以及簡單的項目,EB架構開發效率最高,JDBC次之,Hibernate最差。但是在大的項目,特別是持久層關系映射很復雜的情況下,Hibernate效率高的驚人,JDBC次之,而EB架構很可能會失敗。
4、分布式,安全檢查,集群,負載均衡的支持
由於有SB做為Facade,3個架構沒有區別。
四、EB和Hibernate學習難度在哪裡?
EB的難度在哪裡?不在復雜的XML配置文件上,而在於EB運用稍微不慎,就有嚴重的性能障礙。所以難在你需要學習很多EJB設計模式來避開性能問題,需要學習App Server和EB的配置來優化EB的運行效率。做EB的開發工作,程序員的大部分精力都被放到了EB的性能問題上了,反而沒有更多的精力關注本身就主要投入精力去考慮的對象持久層的設計上來。
Hibernate難在哪裡?不在Hibernate本身的復雜,實際上Hibernate非常的簡單,難在Hibernate太靈活了。
當你用EB來實現持久層的時候,你會發現EB實在是太笨拙了,笨拙到你根本沒有什麼可以選擇的餘地,所以你根本就不用花費精力去設計方案,去平衡方案的好壞,去費腦筋考慮選擇哪個方案,因為只有唯一的方案擺在你面前,你只能這么做,沒得選擇。
Hibernate相反,它太靈活了,相同的問題,你至少可以設計出十幾種方案來解決,所以特別的犯難,究竟用這個,還是用那個呢?這些方案之間到底有什麼區別呢?他們的運行原理有什麼不同?運行效率哪個比較好?光是主鍵生成,就有七八種方案供你選擇,你為難不為難?集合屬性可以用Set,可以用List,還可以用Bag,到底哪個效率高,你為難不為難?查詢可以用iterator,可以用list,哪個好,有什麼區別?你為難不為難?復合主鍵你可以直接在hbm裡面配置,也可以自定義CustomerType,哪種比較好些?你為難不為難?對於一個表,你可以選擇單一映射一個對象,也可以映射成父子對象,還可以映射成兩個1:1的對象,在什麼情況下用哪種方案比較好,你為難不為難?
這個列表可以一直開列下去,直到你不想再看下去為止。當你面前擺著無數的眼花繚亂的方案的時候,你會覺得幸福呢?還是悲哀呢?如果你是一個負責的程序員,那麼你一定會仔細研究每種方案的區別,每種方案的效率,每種方案的適用場合,你會覺得你已經陷入進去拔不出來了。如果是用EB,你第一秒種就已經做出了決定,根本沒得選擇,比如說集合屬性,你只能用Collection,如果是Hibernate,你會在Bag,List和Set之間來回猶豫不決,甚至搞不清楚的話,程序都沒有辦法寫。
3. Spring
它是一個開源的項目,而且目前非常活躍;它基於IoC(Inversion of Control,反向控制)和AOP的構架多層j2ee系統的框架,但它不強迫你必須在每一層 中必須使用Spring,因為它模塊化的很好,允許你根據自己的需要選擇使用它的某一個模塊;它實現了很優雅的MVC,對不同的數據訪問技術提供了統一的 介面,採用IoC使得可以很容易的實現bean的裝配,提供了簡潔的AOP並據此實現Transcation Managment,等等
優點:
a. Spring能有效地組織你的中間層對象,不管你是否選擇使用了EJB。如果你僅僅使用了Struts或其他為J2EE的 API特製的framework,Spring致力於解決剩下的問題。
b. Spring能消除在許多工程中常見的對Singleton的過多使用。根據我的經驗,這是一個很大的問題,它降低了系統的可測試性和面向對象的程度。
c. 通過一種在不同應用程序和項目間一致的方法來處理配置文件,Spring能消除各種各樣自定義格式的屬性文件的需要。曾經對某個類要尋找的是哪個魔法般的屬性項或系統屬性感到不解,為此不得不去讀Javadoc甚至源編碼?有了Spring,你僅僅需要看看類的JavaBean屬性。Inversion of Control的使用(在下面討論)幫助完成了這種簡化。
d.通過把對介面編程而不是對類編程的代價幾乎減少到沒有,Spring能夠促進養成好的編程習慣。
e. Spring被設計為讓使用它創建的應用盡可能少的依賴於他的APIs。在Spring應用中的大多數業務對象沒有依賴於Spring。
f. 使用Spring構建的應用程序易於單元測試。
g. Spring能使EJB的使用成為一個實現選擇,而不是應用架構的必然選擇。你能選擇用POJOs或local EJBs來實現業務介面,卻不會影響調用代碼。
h. Spring幫助你解決許多問題而無需使用EJB。Spring能提供一種EJB的替換物,它們適用於許多web應用。例如,Spring能使用AOP提供聲明性事務管理而不通過EJB容器,如果你僅僅需要與單個資料庫打交道,甚至不需要一個JTA實現。
i. Spring為數據存取提供了一個一致的框架,不論是使用的是JDBC還是O/R mapping產品(如Hibernate)。
Spring確實使你能通過最簡單可行的解決辦法來解決你的問題。而這是有有很大價值的。
缺點:使用人數不多、jsp中要寫很多代碼、控制器過於靈活,缺少一個公用控制器
『貳』 學前端,文憑還很低,是不是找虐的節奏緒eb前端
前端很容易,在排除js的情況下,具體有多容易呢?就和你背語文書,背英語單詞一樣,html裡面的標簽常用的並不多,css裡面的屬性也是如此,然後你再了解一點基本的頁面布局套路,就可以製作簡單的網頁。你再再了解一點不同瀏覽器對於一些屬性的處理方式,再參考網路上一些大佬的方案,你就基本明白了網頁兼容。
然後,你就可以先從仿站開始自己練習項目,其實就是照著敲,然後慢慢的你就脫離了新手期,可以自己獨立做頁面了。
上述過程可以一個月不到實現,文憑低不是借口,我見過好些初高中生就在家研究都能學會。特別是前端還有各種框架,比如bootstrap等等。
後續學習一點js,直接網路上看教程就好了,也是各種套路,學會了套路就會了基礎,會了基礎就可以去公司上班了,公司項目接觸得多了,你js就精通了,況且還有jquery這種事物可以節約你時間。然後你開始你可能沒有什麼界面設計美感,但是經常可以接觸到美工小姐姐發給你的psd圖,看多了各種高端大氣上檔次的界面設計,這些套路慢慢的又懂了,可以自己設計出別人誇一句漂亮的網頁了。
隨後你就接觸到了響應式啊,動畫啊,ajax無限載入啊,h5畫板啊,vue.js啊,什麼瀏覽器dom啊,各種數不清的前端開發框架,這些都是要接觸學習的。隨著相關技術的精通和敲代碼的熟練,你終於可以在新手面前裝逼了。
再後續可以了解node.js這些,然後不可避免的接觸到資料庫,慢慢的連後台都會了,可以在別人面前裝逼自己是全棧工程師了。然後公司就讓你把一個網站從界面設計到資料庫建模到界面製作到後台開發全部做完,並且給你很高的工資。頭發的日漸稀少讓你清楚的感覺到自己正在變強,肚子的逐漸變大讓你明白自己滿腦子都是知識。
然後,前端,你就正式入門了。
好苦逼啊,還是別學了。
『叄』 熒光染料EB染色的優缺點
熒光染料EB染色的優點是安全靈敏,可以代替溴化乙錠EB作為各種核酸電泳的染色劑,缺點是,他有一定的毒性,對人體有害。
EB染料常用的指示劑有溴酚蘭和二甲苯青及銀染色,溴酚蘭在鹼性液體中呈紫蘭色,在0.6%1%、1.4%和2%瓊脂糖凝膠電泳中,溴酚蘭的遷移率分別與1Kb、0.6Kb、0.2Kb和0.15Kb的雙鏈線性DNA片段大致相同。
二甲苯青的水溶液呈蘭色,它在1%和1.4%瓊脂糖中電泳時,其遷移速率分別與2Kb和1.6Kb的雙鏈線性DNA大致相似。
熒光染料是指吸收某一波長的光波後能發射出另一波長大於吸收光的光波的物質,它們大多是含有苯環或雜環並帶有共軛雙鍵的化合物,熒光染料可以單獨使用,也可以組合成復合熒光染料使用。
熒光染料常用於熒光染料產品的制備,以及增白洗衣粉中的增白劑,指示信號用的各種熒光路標漆,熒游標志服等。
熒光染料的其他用途包括,滲漏污水系統包括水和工業的污染物、連接系統、測量發電廠排出的液體、洗手間的滲漏、非法的連接污水管監察,研究流量和繪圖,分析腐敗的系統,此外還用於纖維織物印染和某些特種標志如暗處符號及軍事追蹤等。
『肆』 EB 溴化乙錠 現在有沒有替代品呢
有很多了。
如果肯多花點錢的話,可以買sybr green、sybr gold等,發光強度非常好,靈敏度也很高,就是貴一點。
我們實驗室用的是gene finder,染agarose也沒有任何問題,靈敏度也不錯。其實現在這些發光試劑的原理都差不多,靈敏度和價格成正比。
另外多說一句,這些東西雖然都聲稱毒性小,但是或多或少難免都有致癌作用。最好還是怎麼做EB就怎麼做這些東西,健康最重要啊。
『伍』 海爾洗衣機XQP和EB開頭的各自有什麼優缺點
1、EB比XQB系列編程更自由,漂甩淋水方式不同,內筒及箱體材質比XQB更好。其它方面都一樣。
2、eb為網路平台銷售專供。
3、海爾洗衣機型號含義:
(1)第1位符號「X」表示洗衣機;「T」則是脫水機。
(2)第2位符號「P」表示普通型;「B」半自動型;「Q」全自動型。
(3)第3位符號「B」表示波輪式;「G」滾筒式;「D」攪拌式;s就是雙動力。
(4)第4位表示洗滌容量。第5位是廠家設計序號。
(5)第6位是結構型式代號,「S」表示雙桶機,單桶機則不標示。
(6)為了方便理解,在這里舉個例子:海爾洗衣機XQS60-ZY1128這款產品,來具體解讀下含義。
從左邊第一位開始,X表示洗衣機;Q全自動;S雙動力;60表示洗滌容量為6千克;Z是自編程;Y則是液晶 ,1128是型號。
這款海爾洗衣機型號含義:海爾自編程液晶觸控雙動力全自動6公斤洗衣機。
『陸』 解釋ERP、SCM、EC、EB、CRM、DSS、ES、BI等及其對企業運作的作用
ERP是Enterprise Resource Planning(企業資源計劃)的簡稱,是上個世紀90年代美國一家IT公司根據當時計算機信息、IT技術發展及企業對供應鏈管理的需求,預測在今後信息時代企業管理信息系統的發展趨勢和即將發生變革,而提出了這個概念。 一種ERP系統
ERP是針對物資資源管理(物流)、人力資源管理(人流)、財務資源管理(財流)、信息資源管理(信息流)集成一體化的企業管理軟體。一個由 Gartner Group 開發的概念,描述下一代製造商業系統和製造資源計劃(MRP II)軟體。它將包含客戶/服務架構,使用圖形用戶介面,應用開放系統製作。除了已有的標准功能,它還包括其它特性,如品質、過程運作管理、以及調整報告等。特別是,ERP採用的基礎技術將同時給用戶軟體和硬體兩方面的獨立性從而更加容易升級。ERP的關鍵在於所有用戶能夠裁剪其應用,因而具有天然的易用性。
SCM: scm
供應鏈管理(Supply chain management,SCM)是一種集成的管理思想和方法,它執行供應鏈中從供應商到最終用戶的物流的計劃和控制等職能。從單一的企業角度來看,是指企業通過改善上、下游供應鏈關系,整合和優化供應鏈中的信息流、物流、資金流,以獲得企業的競爭優勢。 根據ERP原理,定義如下:供應鏈管理(Supply chain management,SCM)是圍繞核心企業,主要通過信息手段,對供應的各個環節中的各種物料、資金、信息等資源進行計劃、調度、調配、控制與利用,形成用戶、零售商、分銷商、製造商、采購供應商的全部供應過程的功能整體。 供應鏈管理是企業的有效性管理,表現了企業在戰略和戰術上對企業整個作業流程的優化。整合並優化了供應商、製造商、零售商的業務效率,使商品以正確的數量、正確的品質、在正確的地點、以正確的時間、最佳的成本進行生產和銷售。 SCM(Supply Chain Management)就是對企業供應鏈的管理,是對供應、需求、原材料采購、市場、生產、庫存、定單、分銷發貨等的管理,包括了從生產到發貨、從供應商的供應商到顧客的顧客的每一個環節。 供應鏈管理(SCM)應用是在企業資源規劃(ERP)的基礎上發展起來的,它把公司的製造過程、庫存系統和供應商產生的數據合並在一起,從一個統一的視角展示產品建造過程的各種影響因素。供應鏈是企業賴以生存的商業循環系統,是企業電子商務管理中最重要的課題。統計數據表明,企業供應鏈可以耗費企業高達25%的運營成本。 它主要是一種整合整個供應鏈信息及規劃決策,並且自動化和最佳化信息基礎架構的軟體,目標在於達到整個供應鏈的最佳化(在現有資源下達到最高客戶價值的滿足),為一種新的決策智能型軟體,覆蓋在所有供應鏈公司的ERP和交易處理系統之上。
EC:電子商務源於英文(ELECTRONIC COMMERCE),簡寫為EC。顧名思義,其內容包含兩個方面,一是電子方式,二是商貿活動,EC(電子商務)指的是利用簡單、快捷、低成本的電子通訊方式,買賣雙方不謀面地進行各種商貿活動。 電子商務可以通過多種電子通訊方式來完成。
EB:是電子商務,是廣義的電子商務; EC(Electronic Commerce) 是狹義的電子商務,不過要是選擇電子商務的標准英文縮寫 還是EB EC應該是電子貿易 只是單純的貿易方面 EB才是電子商務 包括信息發布、電子交易、物流等方面 電子商務源於英文ELECTRONIC COMMERCE,簡寫為EC。顧名思義,其內容包含兩個方面,一是電子方式,二是商貿活動。電子商務指的是利用簡單、快捷、低成本的電子通訊方式,買賣雙方不謀面地進行各種商貿活動。 電子商務可以通過多種電子通訊方式來完成。簡單的,比如你通過打電話或發傳真的方式來與客戶進行商貿活動,似乎也可以稱作為電子商務;但是,現在人們所探討的電子商務主要是以EDI(電子數據交換)和INTERNET來完成的。尤其是隨著INTERNET技術的日益成熟,電子商務真正的發展將是建立在INTERNET技術上的。所以也有人把電子商務簡稱為IC(INTERNET COMMERCE)。
CRM:CRM(Customer Relationship Management)就是客戶關系管理。從字面上來看,是指企業用CRM來管理與客戶之間的關系。CRM是選擇和管理有價值客戶及其關系的一種商業策略,CRM要求以客戶為中心的商業哲學和企業文化來支持有效的市場營銷、銷售與服務流程。CRM是一個獲取、保持和增加可獲利客戶的方法和過程。CRM既是一種嶄新的、國際領先的、以客戶為中心的企業管理理論、商業理念和商業運作模式,也是一種以信息技術為手段、有效提高企業收益、客戶滿意度、雇員生產力的具體軟體和實現方法。
DSS:決策支持系統(decision support system ,簡稱dss)是輔助決策者通過數據、模型和知識,以人機交互方式進行半結構化或非結構化決策的計算機應用系統。它是管理信息系統(mis)向更高一級發展而產生的先進信息管理系統。它為決策者提供分析問題、建立模型、模擬決策過程和方案的環境,調用各種信息資源和分析工具,幫助決策者提高決策水平和質量。
ES的解釋主要有以下幾項:ES版CPU就是常說的「Engineering Sample(工程樣板)」,由於其不鎖定倍頻和外頻,所以經常受到朝品愛好者的追捧。但很少有人知道ES版CPU的真正面目。ES版CPU在出售了一段時間後問題不斷,享受高性價比的同時,也伴隨著高頻率的藍屏、無故重啟、程序錯誤等多種不可預知的故障,更令消費者頭痛的是這種CPU是沒法得到AMD官方的有效質保的。另有暴雪公司游戲ES。
專家系統(Expert System,ES)的概念是基於這樣的一種假設:專家們的知識——既解決問題的方法與方式,可被保存和習得,它可被保存放在計算機設備中,並可被別人需要時使用。 ES:串列口中斷允許位位於單片機中斷允許寄存器IE當中,可直接定址(ACH),ES=0時,禁止串列口中斷;ES=1時,允許串列口中斷。 ES 內嵌式存儲系統ES (內嵌式存儲系統(embedded storage,ES)) 內嵌式存儲系統(embedded storage,ES),就是把存儲介質內嵌在伺服器中,就好比現在PC中的硬碟。 優點是安裝簡單,維護方便。 缺點是每個伺服器所能夠連接的存儲介質很有限,同時存儲容量和存取速度都受到伺服器性能的限制。內嵌式存儲系統的一個致使缺點是所存儲信息的安全性和可用性必須依賴伺服器,如果伺服器出現故障,其所存儲的信息將不可用。 所以說,內嵌式存儲系統是一個封閉的系統。
BI:商業智能(BI,Business Intelligence)。商業智能的概念最早在1996年提出。當時將商業智能定義為一類由數據倉庫(或數據集市)、查詢報表、數據分析、數據挖掘、數據備份和恢復等部分組成的、以幫助企業決策為目的技術及其應用。目前,商業智能通常被理解為將企業中現有的數據轉化為知識,幫助企業做出明智的業務經營決策的工具。商務智能系統中的數據來自企業其他業務系統。例如商貿型企業,其商務智能系統數據包括業務系統的訂單、庫存、交易賬目、客戶和供應商信息等,以及企業所處行業和競爭對手的數據、其他外部環境數據。而這些數據可能來自企業的CRM、SCM等業務系統。 商業智能能夠輔助的業務經營決策,既可以是操作層的,也可以是戰術層和戰略層的決策。為了將數據轉化為知識,需要利用數據倉庫、聯機分析處理(OLAP)工具和數據挖掘等技術。因此,從技術層面上講,商業智能不是什麼新技術,它只是數據倉庫、OLAP和數據挖掘等技術的綜合運用。 把商業智能看成一種解決方案應該比較恰當。商業智能的關鍵是從許多來自不同的企業運作系統的數據中提取出有用的數據並進行清理,以保證數據的正確性,然後經過抽取(Extraction)、轉換(Transformation)和裝載(Load),即ETL過程,合並到一個企業級的數據倉庫里,從而得到企業數據的一個全局視圖,在此基礎上利用合適的查詢和分析工具、數據挖掘工具、OLAP工具等對其進行分析和處理(這時信息變為輔助決策的知識),最後將知識呈現給管理者,為管理者的決策過程提供支持。
『柒』 Hibernate與jdbc哪個好各自的優點和缺點
一、 Hibernate是JDBC的輕量級的對象封裝,它是一個獨立的對象持久層框架,和App Server,和EJB沒有什麼必然的聯系。Hibernate可以用在任何JDBC可以使用的場合,例如Java應用程序的資料庫訪問代碼,DAO介面 的實現類,甚至可以是BMP裡面的訪問資料庫的代碼。從這個意義上來說,Hibernate和EB不是一個范疇的東西,也不存在非此即彼的關系。
二、Hibernate是一個和JDBC密切關聯的框架,所以Hibernate的兼容性和JDBC驅動,和資料庫都有一定的關系,但是和使用它的Java程序,和App Server沒有任何關系,也不存在兼容性問題。
三、Hibernate不能用來直接和Entity Bean做對比,只有放在整個J2EE項目的框架中才能比較。並且即使是放在軟體整體框架中來看,Hibernate也是做為JDBC的替代者出現的,而 不是Entity Bean的替代者出現的,讓我再列一次我已經列n次的框架結構:
傳統的架構:
1) Session Bean Entity Bean DB
為了解決性能障礙的替代架構:
2) Session Bean DAO JDBC DB
使用Hibernate來提高上面架構的開發效率的架構:
3) Session Bean DAO Hibernate DB
就上面3個架構來分析:
1、內存消耗:採用JDBC的架構2無疑是最省內存的,Hibernate的架構3次之,EB的架構1最差。
2、運行效率: 如果JDBC的代碼寫的非常優化,那麼JDBC架構運行效率最高,但是實際項目中,這一點幾乎做不到,這需要程序員非常精通JDBC,運用Batch語 句,調整PreapredStatement的Batch Size和Fetch Size等參數,以及在必要的情況下採用結果集cache等等。而一般情況下程序員是做不到這一點的。因此Hibernate架構表現出最快的運行效率。 EB的架構效率會差的很遠。
3、開發效率:在有JBuilder的支持下以及簡單的項目,EB架構開發效率最高,JDBC次之,Hibernate最差。但是在大的項目,特別是持久層關系映射很復雜的情況下,Hibernate效率高的驚人,JDBC次之,而EB架構很可能會失敗。
4、分布式,安全檢查,集群,負載均衡的支持 由於有SB做為Facade,3個架構沒有區別。
四、EB和Hibernate學習難度在哪裡?
EB的難度在哪裡?不在復雜的XML配置文件上,而在於EB運用稍微不慎,就有嚴重的性能障礙。所以難在你需要學習很多EJB設計模式來避開性能問題,需要學習App Server和EB的配置來優化EB的運行效率。做EB的開發工作,程序員的大部分精力都被放到了EB的性能問題上了,反而沒有更多的精力關注本身就主要投入精力去考慮的對象持久層的設計上來。
Hibernate難在哪裡?不在Hibernate本身的復雜,實際上Hibernate非常的簡單,難在Hibernate太靈活了。 當你用EB來實現持久層的時候,你會發現EB實在是太笨拙了,笨拙到你根本沒有什麼可以選擇的餘地,所以你根本就不用花費精力去設計方案,去平衡方案的好 壞,去費腦筋考慮選擇哪個方案,因為只有唯一的方案擺在你面前,你只能這么做,沒得選擇。Hibernate相反,它太靈活了,相同的問題,你至少可以設 計出十幾種方案來解決,所以特別的犯難,究竟用這個,還是用那個呢?這些方案之間到底有什麼區別呢?他們的運行原理有什麼不同?運行效率哪個比較好?光是 主鍵生成,就有七八種方案供你選擇,你為難不為難?集合屬性可以用Set,可以用List,還可以用Bag,到底哪個效率高,你為難不為難?查詢可以用 iterator,可以用list,哪個好,有什麼區別?你為難不為難?復合主鍵你可以直接在hbm裡面配置,也可以自定義CustomerType,哪 種比較好些?你為難不為難?對於一個表,你可以選擇單一映射一個對象,也可以映射成父子對象,還可以映射成兩個1:1的對象,在什麼情況下用哪種方案比較 好,你為難不為難? 這個列表可以一直開列下去,直到你不想再看下去為止。當你面前擺著無數的眼花繚亂的方案的時候,你會覺得幸福呢?還是悲哀呢?如果你是一個負責的程序員, 那麼你一定會仔細研究每種方案的區別,每種方案的效率,每種方案的適用場合,你會覺得你已經陷入進去拔不出來了。如果是用EB,你第一秒種就已經做出了決 定,根本沒得選擇,比如說集合屬性,你只能用Collection,如果是Hibernate,你會在Bag,List和Set之間來回猶豫不決,甚至搞 不清楚的話,程序都沒有辦法寫。
補充:JDBC與Hibernate在性能上相比,JDBC靈活性有優勢。而Hibernate在易學性,易用性上有些優勢。當用到很多復雜的多表聯查和復雜的資料庫操作時,JDBC有優勢。
相同點:
◆兩者都是JAVA的資料庫操作中間件。
◆兩者對於資料庫進行直接操作的對象都不是線程安全的,都需要及時關閉。
◆兩者都可以對資料庫的更新操作進行顯式的事務處理。
不同點:
◆使用的SQL語言不同:JDBC使用的是基於關系型資料庫的標准SQL語言,Hibernate使用的是HQL(Hibernate query language)語言
◆操作的對象不同:JDBC操作的是數據,將數據通過SQL語句直接傳送到資料庫中執行,Hibernate操作的是持久化對象,由底層持久化對象的數據更新到資料庫中。
◆數據狀態不同:JDBC操作的數據是「瞬時」的,變數的值無法與資料庫中的值保持一致,而Hibernate操作的數據是可持久的,即持久化對象的數據屬性的值是可以跟資料庫中的值保持一致的。
JDBC與Hibernate讀取性能
1、JDBC仍然是最快的訪問方式,不論是Create還是Read操作,都是JDBC快。
2、Hibernate使用uuid.hex構造主鍵,性能稍微有點損失,但是不大。
3、Create操作,JDBC在使用批處理的方式下速度比Hibernate快,使用批處理方式耗用JVM內存比不使用批處理方式要多得多。
4、讀取數據,Hibernate的Iterator速度非常緩慢,因為他是每次next的時候才去資料庫取數據,這一點從觀察任務管理器的java進程佔用內存的變化也可以看得很清楚,內存是幾十K幾十K的增加。
5、讀取數據,Hibernate的List速度很快,因為他是一次性把數據取完,這一點從觀察任務管理器的java進程佔用內存的變化也可以看得很清楚,內存幾乎是10M的10M的增加。
6、JDBC讀取數據的方式和Hibernate的List方式是一樣的(這跟JDBC驅動有很大關系,不同的JDBC驅動,結果會很不一樣),這 從觀察java進程內存變化可以判斷出來,由於JDBC不需要像Hibernate那樣構造一堆Cat對象實例,所以佔用JVM內存要比 Hibernate的List方式大概少一半左右。
7、Hibernate的Iterator方式並非一無是處,它適合於從大的結果集中選取少量的數據,即不需要佔用很多內存,又可以迅速得到結果。另外Iterator適合於使用JCS緩沖。最終結論:
由於MySQL的JDBC驅動的重大缺陷,使得測試結果變得毫無意義,不具備任何參考價值,只是我們能夠大概判斷出一些結論:
一、精心編寫的JDBC無論如何都是最快的。
二、Hibernate List和Iterator適用的場合不同,不存在孰優孰劣的問題
我個人認為Hibernate Iterator是JDBC Result的封裝,Hibernate List是Scrollable Result的封裝,所以我推測,如果在Oracle或者DB2上面做同樣的Read測試,如果結果集小於FetchSize,4者在速度上應該都不會有 差別;如果結果集大於FetchSize的話,但是不是FetchSize的很多倍,速度排名應該是:
JDBC Scrollable Result (消耗時間最少) < Hibernate List < JDBC Result < Hibernate Iterator
如果結果集非常大,但是只取結果集中的部分記錄,那麼速度排名:
JDBC Result < Hibernate Iterator < JDBC Scrollable Result < Hibernate List
為了避免造成誤導,我最後強調一下我的結論:
一、「精心編寫」的JDBC一定是性能最好的
實際上,不管CMP,Hibernate,JDO等等,所有的ORM都是對JDBC的封裝,CMP則是一個重量級封裝,JDO中度封 裝,Hibernate是輕量級的封裝。從理論上來說,ORM永遠也不可能比JDBC性能好。就像任何高級語言的運行性能永遠也不會好過匯編語言一個道 理。
對於Create和Update操作來說,由於普通的Java程序員未必會使用JDBC的Batch的功能,所以Hibernate會表現出超過JDBC的運行速度。
對於Read的操作來說,ORM普遍都會帶有雙層緩沖,即PrepreadStatement緩沖和ResultSet緩沖,而JDBC本身沒有緩 沖機制,在使用連接池的情況下,一些連接池將會提供PrepreadStatement緩沖,有的甚至提供ResultSet緩沖,但是普遍情況 下,Java程序員一般都不會考慮到在寫JDBC的時候優化緩沖,而且這樣做也不太現實,所以在某些情況下,ORM會表現出超過JDBC的Read速度。
二、Hibernate List和Iterator方式的比較
JDBC與Hibernate在測試中想要重點考察的方面是 List與Iterator,但是由於JDBC驅動問題,結果變的很不可信,不過仍然可以得到一些有用的結論。
Read操作包括兩步:第一步是把資料庫的數據取出,構造結果集,把數據放入到結果集中;第二步是遍歷結果集,取每行數據。
List方式是1次性把所有的數據全部取到內存中,構造一個超大的結果集,主要的時間開銷是這一步,這一步的時間開銷要遠遠超過JDBC和 Iterator方式下構造結果集的時間開銷,並且內存開銷也很驚人;而對結果集的遍歷操作,速度則是非常的驚人(從上面的測試結果來看,30萬記錄的內 存遍歷不到100ms,由於這一步不受JDBC影響,因此結果可信)。因此,List方式適合於對結果集進行反復多次操作的情況,例如分頁顯示,往後往前 遍歷,跳到第一行,跳到最後一行等等。
Iterator方式只取記錄id到內存中,並沒有把所有數據取到內存中,因此構造結果集的時間開銷很小,比JDBC和List方式都要少,並且內 存開銷也小很多。而對結果集的遍歷的操作的時候,Iterator仍然要訪問資料庫,所有主要的時間開銷都花在這里。因此,Iterator方式適合於只 對結果集進行1次遍歷操作的情況,並且Iterator方式特別適合於從超大結果集中取少量數據,這種情況Iterator性能非常好。
另外Iterator方式可以利用JCS緩沖,在使用緩沖的情況下Iterator方式的遍歷操作速度將不受資料庫訪問速度的影響,得到徹底的提 升。Hibernate Iterator JCS方式應該是最快的,Hibernate List速度與JDBC比較接近,而Hibernate Iterator速度還是慢的離譜。另外JDBC和List受到Fetch Size的影響很大,當Fetch Size大於50的時候,速度有非常顯著的提升,而Hibernate Iterator的速度似乎不受Fetch Size的影響。
本文來自CSDN博客,轉載請標明出處:http://www.cnblogs.com/frankliiu-java/articles/1915994.html
『捌』 EB與gel-red/green其優缺點是什麼哪個毒性小,效果、價格
EB效果好,便宜,但是毒性大
gel-red出來的條帶會淡一點,但是毒性小,安全些,價格也貴
『玖』 DNA的瓊脂糖凝膠電泳實驗中可替代DNA的染料EB的電泳染料有哪些優缺點各是什麼急!
目前為止,對身體低毒、穩定而靈敏度不輸於EB的核酸染料只有sybr green ,和 gelred
這兩個的優點都是低毒性,而且穩定性很高,但是sybr green 的靈敏度不如EB,且背景熒光很強,但普通的核酸檢測都能做到; gelred 是目前市場上最好的核酸染料,號稱無毒,而且耐熱,無背景熒光,但是加入量多容易引起拖帶,當然價格也挺貴的。
除此之外,國內有些不良商販,拿AO(丫叮橙)做EB替代品,是劇毒致癌物質,且實驗效果也不如EB。
『拾』 台鈴標兵二代eb缺點
騎起來感覺前輪後輪不是一條線,後輪擺來擺去的。店員不說氣足就氣不夠,說我是我騎的有問題一樣。台鈴售後很垃圾,今天修了一下,後輪不擺了。扶把手開始抖了,騎一圈手給抖麻了。減震也不行,稍微一個小坑一點緩沖都沒有。標兵二代POR的智能開鎖真麻煩智商稅一樣,繁瑣的很。現在搞來搞去也不知道那得問題,來來去去也是輪胎的氣的問題