欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Spring,hibernate,struts的面試筆試題有哪些

這篇文章主要講解了“Spring,hibernate,struts的面試筆試題有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Spring,hibernate,struts的面試筆試題有哪些”吧!

日喀則網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),日喀則網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為日喀則1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個(gè)售后服務(wù)好的日喀則做網(wǎng)站的公司定做!

Hibernate工作原理及為什么要用?
原理:
1.讀取并解析配置文件
2.讀取并解析映射信息,創(chuàng)建SessionFactory
3.打開Sesssion
4.創(chuàng)建事務(wù)Transation
5.持久化操作
6.提交事務(wù)
7.關(guān)閉Session
8.關(guān)閉SesstionFactory

為什么要用:
1. 對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。
2. Hibernate是一個(gè)基于JDBC的主流持久化框架,是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn)。他很大程度的簡化DAO層的編碼工作
3. hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。
4. hibernate的性能非常好,因?yàn)樗莻€(gè)輕量級框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。

2.Hibernate是如何延遲加載?
1. Hibernate2延遲加載實(shí)現(xiàn):a)實(shí)體對象 b)集合(Collection)
2. Hibernate3 提供了屬性的延遲加載功能
當(dāng)Hibernate在查詢數(shù)據(jù)的時(shí)候,數(shù)據(jù)并沒有存在與內(nèi)存中,當(dāng)程序真正對數(shù)據(jù)的操作時(shí),對象才存在與內(nèi)存中,就實(shí)現(xiàn)了延遲加載,他節(jié)省了服務(wù)器的內(nèi)存開銷,從而提高了服務(wù)器的性能。

3.Hibernate中怎樣實(shí)現(xiàn)類之間的關(guān)系?(如:一對多、多對多的關(guān)系)

類與類之間的關(guān)系主要體現(xiàn)在表與表之間的關(guān)系進(jìn)行操作,它們都市對對象進(jìn)行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many、

4.說下Hibernate的緩存機(jī)制

1. 內(nèi)部緩存存在Hibernate中又叫一級緩存,屬于應(yīng)用事物級緩存

2. 二級緩存:
a) 應(yīng)用及緩存
b) 分布式緩存
條件:數(shù)據(jù)不會被第三方修改、數(shù)據(jù)大小在可接受范圍、數(shù)據(jù)更新頻率低、同一數(shù)據(jù)被系統(tǒng)頻繁使用、非 關(guān)鍵數(shù)據(jù)
c) 第三方緩存的實(shí)現(xiàn)

5.Hibernate的查詢方式

第一種:get() and load()
session.get(Clazz, id);
session.load(Clazz, id);
說明: load()與get()的區(qū)別
請注意如果沒有匹配的數(shù)據(jù)庫記錄,load()方法可能拋出無法恢復(fù)的異常(unrecoverable
exception)。 如果類的映射使用了代理(proxy),load()方法會返回一個(gè)未初始化的代理,直到你調(diào)用

該代理的某方法時(shí)才會去訪問數(shù)據(jù)庫。 若你希望在某對象中創(chuàng)建一個(gè)指向另一個(gè)對象的關(guān)聯(lián),又不想在

從數(shù)據(jù)庫中裝載該對象時(shí)同時(shí)裝載相關(guān)聯(lián)的那個(gè)對象,那么這種操作方式就用得上的了。 如果為相應(yīng)類

映射關(guān)系設(shè)置了batch-size, 那么使用這種操作方式允許多個(gè)對象被一批裝載(因?yàn)榉祷氐氖谴恚瑹o

需從數(shù)據(jù)庫中抓取所有對象的數(shù)據(jù))。
如果你不確定是否有匹配的行存在,應(yīng)該使用get()方法,它會立刻訪問數(shù)據(jù)庫,如果沒有對應(yīng)的行,會返回null。

第二種:HQL

Java代碼
// 返回一行記錄
String hql = "from TOrder o where o.id = ?";
TOrder o = (TOrder) s.createQuery(hql)
  .setParameter(0, orderId)
  .uniqueResult();

// 命名參數(shù)
Query q = sess.createQuery("from DomesticCat cat where cat.name = :name");
q.setString("name", "Fritz");

// 位置參數(shù)
Query q = sess.createQuery("from DomesticCat cat where cat.name = ?");
q.setString(0, "Izi");

// 命名參數(shù)列表
Query q = sess.createQuery("from DomesticCat cat where cat.name in (:namesList)");
q.setParameterList("namesList", names);

// 分頁查詢
Query q = sess.createQuery("from DomesticCat cat");
q.setFirstResult(20);
q.setMaxResults(10);
List cats = q.list();

第三種: Criteria

List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like("name", "Fritz%") )
.add( Restrictions.or(
Restrictions.eq( "age", new Integer(0) ),
Restrictions.isNull("age")
) )
.addOrder( Order.asc("name") )
.addOrder( Order.desc("age") )
.list();

第四種: Native SQL

String treeSql = "" +
"select , level from tree t " +
" start with t.parent_id = 0 " +
" connect by prior t.id = t.parent_id";

List result = session.createSQLQuery(treeSql)
.addEntity("t", Tree.class)
.addScalar("level", Hibernate.INTEGER)
.list();

6.如何優(yōu)化Hibernate?
1.使用雙向一對多關(guān)聯(lián),不使用單向一對多
2.靈活使用單向一對多關(guān)聯(lián)
3.不用一對一,用多對一取代
4.配置對象緩存,不使用集合緩存
5.一對多集合使用Bag,多對多集合使用Set
6. 繼承類使用顯式多態(tài)
7. 表字段要少,表關(guān)聯(lián)不要怕多,有二級緩存撐腰

7.Struts工作機(jī)制?為什么要使用Struts?
工作機(jī)制:
Struts的工作流程:
在web應(yīng)用啟動(dòng)時(shí)就會加載初始化ActionServlet,ActionServlet從
struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象
當(dāng)ActionServlet接收到一個(gè)客戶請求時(shí),將執(zhí)行如下流程.
-(1)檢索和用戶請求匹配的ActionMapping實(shí)例,如果不存在,就返回請求路徑無效信息;
-(2)如果ActionForm實(shí)例不存在,就創(chuàng)建一個(gè)ActionForm對象,把客戶提交的表單數(shù)據(jù)保存到ActionForm對象中;
-(3)根據(jù)配置信息決定是否需要表單驗(yàn)證.如果需要驗(yàn)證,就調(diào)用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回或返回一個(gè)不包含ActionMessage的ActuibErrors對象, 就表示表單驗(yàn)證成功;
-(5)ActionServlet根據(jù)ActionMapping所包含的映射信息決定將請求轉(zhuǎn)發(fā)給哪個(gè)Action,如果相應(yīng)的 Action實(shí)例不存在,就先創(chuàng)建這個(gè)實(shí)例,然后調(diào)用Action的execute()方法;
-(6)Action的execute()方法返回一個(gè)ActionForward對象,ActionServlet在把客戶請求轉(zhuǎn)發(fā)給 ActionForward對象指向的JSP組件;
-(7)ActionForward對象指向JSP組件生成動(dòng)態(tài)網(wǎng)頁,返回給客戶;

為什么要用:
JSP、Servlet、JavaBean技術(shù)的出現(xiàn)給我們構(gòu)建強(qiáng)大的企業(yè)應(yīng)用系統(tǒng)提供了可能。但用這些技術(shù)構(gòu)建的系統(tǒng)非常的繁亂,所以在此之上,我們需要一個(gè)規(guī)則、一個(gè)把這些技術(shù)組織起來的規(guī)則,這就是框架,Struts便應(yīng)運(yùn)而生。

基于Struts開發(fā)的應(yīng)用由3類組件構(gòu)成:控制器組件、模型組件、視圖組件

8.Struts的validate框架是如何驗(yàn)證的?
在struts配置文件中配置具體的錯(cuò)誤提示,再在FormBean中的validate()方法具體調(diào)用。

9.說下Struts的設(shè)計(jì)模式
MVC 模式: web應(yīng)用程序啟動(dòng)時(shí)就會加載并初始化ActionServler。用戶提交表單時(shí),一個(gè)配置好的ActionForm對象被創(chuàng)建,并被填入表單相應(yīng)的數(shù)據(jù),ActionServler根據(jù)Struts-config.xml文件配置好的設(shè)置決定是否需要表單驗(yàn)證,如果需要就調(diào)用ActionForm的 Validate()驗(yàn)證后選擇將請求發(fā)送到哪個(gè)Action,如果Action不存在,ActionServlet會先創(chuàng)建這個(gè)對象,然后調(diào)用 Action的execute()方法。Execute()從ActionForm對象中獲取數(shù)據(jù),完成業(yè)務(wù)邏輯,返回一個(gè)ActionForward對象,ActionServlet再把客戶請求轉(zhuǎn)發(fā)給ActionForward對象指定的jsp組件,ActionForward對象指定的jsp生成動(dòng)態(tài)的網(wǎng)頁,返回給客戶。

10.spring工作機(jī)制及為什么要用?
1.spring mvc請所有的請求都提交給DispatcherServlet,它會委托應(yīng)用系統(tǒng)的其他模塊負(fù)責(zé)負(fù)責(zé)對請求進(jìn)行真正的處理工作。
2.DispatcherServlet查詢一個(gè)或多個(gè)HandlerMapping,找到處理請求的Controller.
3.DispatcherServlet請請求提交到目標(biāo)Controller
4.Controller進(jìn)行業(yè)務(wù)邏輯處理后,會返回一個(gè)ModelAndView
5.Dispathcher查詢一個(gè)或多個(gè)ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象
6.視圖對象負(fù)責(zé)渲染返回給客戶端。

為什么用:
{AOP 讓開發(fā)人員可以創(chuàng)建非行為性的關(guān)注點(diǎn),稱為橫切關(guān)注點(diǎn),并將它們插入到應(yīng)用程序代碼中。使用 AOP 后,公共服務(wù) (比 如日志、持久性、事務(wù)等)就可以分解成方面并應(yīng)用到域?qū)ο笊希瑫r(shí)不會增加域?qū)ο蟮膶ο竽P偷膹?fù)雜性。
IOC 允許創(chuàng)建一個(gè)可以構(gòu)造對象的應(yīng)用環(huán)境,然后向這些對象傳遞它們的協(xié)作對象。正如單詞 倒置 所表明的,IOC 就像反 過來的 JNDI。沒有使用一堆抽象工廠、服務(wù)定位器、單元素(singleton)和直接構(gòu)造(straight construction),每一個(gè)對象都是用其協(xié)作對象構(gòu)造的。因此是由容器管理協(xié)作對象(collaborator)。
Spring即使一個(gè)AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替換對象。有了 Spring,只要用 JavaBean 屬性和配置文件加入依賴性(協(xié)作對象)。然后可以很容易地在需要時(shí)替換具有類似接口的協(xié)作對象。}

==============================================

1. HttpSession session = request.getSession()

與HttpSession session = request.getSession(true)的區(qū)別?

參考答案:

getSession(true)的函數(shù)原型為::HttpSession session = request.getSession (Boolean create)

如果有與當(dāng)前的request先關(guān)聯(lián)的HttpSession,那么返回request相關(guān)聯(lián)的HttpSession,如果還沒有,那么:

java 代碼
與當(dāng)前

如果create==true, 那么返回一個(gè)新建的HttpSession,

如果create==false, 那么返回null.

2. getParameter與 getAttribute的區(qū)別?

參考答案:

Attribute是指屬性。

Parameter是指參數(shù),由URL傳入或由FORM提交的內(nèi)容

3.以下哪一個(gè)不是賦值符號?

A. += B. <<= C. <<<= d.="">>>=

參考答案:

A.很明顯是賦值符號

B.<<=左移賦值

C.不是

D.>>>= 右移賦值,左邊空出的位以0填充

4.以下哪個(gè)不是Collection的子接口?

A. List B. Set C. SortedSet D. Map

參考答案:D

5.BufferedReader的父類是以下哪個(gè)?

A. FilterReader B. InputStreamReader C. PipedReader D. Reader

參考答案:D

6.子類A繼承父類B

A a = new A();

則 父類B構(gòu)造函數(shù)、父類B靜態(tài)代碼塊、父類B非靜態(tài)代碼塊、子類A構(gòu)造函數(shù)、子類A靜態(tài)代碼塊、子類A非靜態(tài)代碼塊 執(zhí)行的先后順序是?

參考答案:父類B靜態(tài)代碼塊->子類A靜態(tài)代碼塊->父類B構(gòu)造函數(shù)->父類B非靜態(tài)代碼塊->子類A構(gòu)造函數(shù)->子類A非靜態(tài)代碼塊

1.在數(shù)據(jù)庫中條件查詢速度很慢的時(shí)候,如何優(yōu)化?
1.建索引
2.減少表之間的關(guān)聯(lián)
3.優(yōu)化sql,盡量讓sql很快定位數(shù)據(jù),不要讓sql做全表查詢,應(yīng)該走索引,把數(shù)據(jù)量大的表排在前面
4.簡化查詢字段,沒用的字段不要,已經(jīng)對返回結(jié)果的控制,盡量返回少量數(shù)據(jù)

[2.在hibernate中進(jìn)行多表查詢,每個(gè)表中各取幾個(gè)字段,也就是說查詢出來的結(jié)果集并沒有一個(gè)實(shí)體類與之對應(yīng),如何解決這個(gè)問題?
解決方案一,按照Object[]數(shù)據(jù)取出數(shù)據(jù),然后自己組bean
解決方案二,對每個(gè)表的bean寫構(gòu)造函數(shù),比如表一要查出field1,field2兩個(gè)字段,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1 filed1,type2 field2) ,然后在hql里面就可以直接生成這個(gè)bean了。具體怎么用請看相關(guān)文檔,我說的不是很清楚。
session.load()和session.get()的區(qū)別
Session.load/get方法均可以根據(jù)指定的實(shí)體類和id從數(shù)據(jù)庫讀取記錄,并返回與之對應(yīng)的實(shí)體對象。其區(qū)別在于:

如果未能發(fā)現(xiàn)符合條件的記錄,get方法返回null,而load方法會拋出一個(gè)ObjectNotFoundException。
Load方法可返回實(shí)體的代理類實(shí)例,而get方法永遠(yuǎn)直接返回實(shí)體類。
load方法可以充分利用內(nèi)部緩存和二級緩存中的現(xiàn)有數(shù)據(jù),而get方法則僅僅在內(nèi)部緩存中進(jìn)行數(shù)據(jù)查找,如沒有發(fā)現(xiàn)對應(yīng)數(shù)據(jù),將越過二級緩存,直接調(diào)用SQL完成數(shù)據(jù)讀取。
Session在加載實(shí)體對象時(shí),將經(jīng)過的過程:

首先,Hibernate中維持了兩級緩存。第一級緩存由Session實(shí)例維護(hù),其中保持了Session當(dāng)前所有關(guān)聯(lián)實(shí)體的數(shù)據(jù),也稱為內(nèi)部緩存。而第二級緩存則存在于SessionFactory層次,由當(dāng)前所有由本SessionFactory構(gòu)造的Session實(shí)例共享。出于性能考慮,避免無謂的數(shù)據(jù)庫訪問,Session在調(diào)用數(shù)據(jù)庫查詢功能之前,會先在緩存中進(jìn)行查詢。首先在第一級緩存中,通過實(shí)體類型和id進(jìn)行查找,如果第一級緩存查找命中,且數(shù)據(jù)狀態(tài)合法,則直接返回。
之后,Session會在當(dāng)前"NonExists"記錄中進(jìn)行查找,如果"NonExists"記錄中存在同樣的查詢條件,則返回null。"NonExists"記錄了當(dāng)前Session實(shí)例在之前所有查詢操作中,未能查詢到有效數(shù)據(jù)的查詢條件(相當(dāng)于一個(gè)查詢黑名單列表)。如此一來,如果Session中一個(gè)無效的查詢條件重復(fù)出現(xiàn),即可迅速作出判斷,從而獲得最佳的性能表現(xiàn)。
對于load方法而言,如果內(nèi)部緩存中未發(fā)現(xiàn)有效數(shù)據(jù),則查詢第二級緩存,如果第二級緩存命中,則返回。
如在緩存中未發(fā)現(xiàn)有效數(shù)據(jù),則發(fā)起數(shù)據(jù)庫查詢操作(Select SQL),如經(jīng)過查詢未發(fā)現(xiàn)對應(yīng)記錄,則將此次查詢的信息在"NonExists"中加以記錄,并返回null。
根據(jù)映射配置和Select SQL得到的ResultSet,創(chuàng)建對應(yīng)的數(shù)據(jù)對象。
將其數(shù)據(jù)對象納入當(dāng)前Session實(shí)體管理容器(一級緩存)。
執(zhí)行Interceptor.onLoad方法(如果有對應(yīng)的Interceptor)。
將數(shù)據(jù)對象納入二級緩存。
如果數(shù)據(jù)對象實(shí)現(xiàn)了LifeCycle接口,則調(diào)用數(shù)據(jù)對象的onLoad方法。
返回?cái)?shù)據(jù)對象。
Hibernate的主鍵生成機(jī)制
1) assigned
主鍵由外部程序負(fù)責(zé)生成,無需Hibernate參與。
2) hilo
通過hi/lo 算法實(shí)現(xiàn)的主鍵生成機(jī)制,需要額外的數(shù)據(jù)庫表保存主鍵生成歷史狀態(tài)。
3) seqhilo
與hilo 類似,通過hi/lo 算法實(shí)現(xiàn)的主鍵生成機(jī)制,只是主鍵歷史狀態(tài)保存在Sequence中,適用于支持Sequence的數(shù)據(jù)庫,如Oracle。
4) increment
主鍵按數(shù)值順序遞增。此方式的實(shí)現(xiàn)機(jī)制為在當(dāng)前應(yīng)用實(shí)例中維持一個(gè)變量,以保存著當(dāng)前的最大值,之后每次需要生成主鍵的時(shí)候?qū)⒋酥导?作為主鍵。這種方式可能產(chǎn)生的問題是:如果當(dāng)前有多個(gè)實(shí)例訪問同一個(gè)數(shù)據(jù)庫,那么由于各個(gè)實(shí)例各自維護(hù)主鍵狀態(tài),不同實(shí)例可能生成同樣的主鍵,從而造成主鍵重復(fù)異常。因此,如果同一數(shù)據(jù)庫有多個(gè)實(shí)例訪問,此方式必須避免使用。
5) identity
采用數(shù)據(jù)庫提供的主鍵生成機(jī)制。如DB2、SQL Server、MySQL中的主鍵生成機(jī)制。
6) sequence
采用數(shù)據(jù)庫提供的sequence 機(jī)制生成主鍵。如Oralce 中的Sequence。
7) native
由Hibernate根據(jù)底層數(shù)據(jù)庫自行判斷采用identity、hilo、sequence其中一種作為主鍵生成方式。
8) uuid.hex
由Hibernate基于128 位唯一值產(chǎn)生算法生成16 進(jìn)制數(shù)值(編碼后以長度32 的字符串表示)作為主鍵。
9) uuid.string
與uuid.hex 類似,只是生成的主鍵未進(jìn)行編碼(長度16)。在某些數(shù)據(jù)庫中可能出現(xiàn)問題(如PostgreSQL)。
10) foreign
使用外部表的字段作為主鍵。一般而言,利用uuid.hex方式生成主鍵將提供最好的性能和數(shù)據(jù)庫平臺適應(yīng)性。
這 10中生成OID標(biāo)識符的方法,increment 比較常用,把標(biāo)識符生成的權(quán)力交給Hibernate處理.但是當(dāng)同時(shí)多個(gè)Hibernate應(yīng)用操作同一個(gè)數(shù)據(jù)庫,甚至同一張表的時(shí)候.就推薦使用 identity 依賴底層數(shù)據(jù)庫實(shí)現(xiàn),但是數(shù)據(jù)庫必須支持自動(dòng)增長,當(dāng)然針對不同的數(shù)據(jù)庫選擇不同的方法.如果你不能確定你使用的數(shù)據(jù)庫具體支持什么的情況下.可以選擇用 native 讓Hibernate來幫選擇identity,sequence,或hilo.
另外由于常用的數(shù)據(jù)庫,如Oracle、 DB2、SQLServer、MySql 等,都提供了易用的主鍵生成機(jī)制(Auto-Increase 字段或者Sequence)。我們可以在數(shù)據(jù)庫提供的主鍵生成機(jī)制上,采用generator-class=native的主鍵生成方式。
不過值得注意的是,一些數(shù)據(jù)庫提供的主鍵生成機(jī)制在效率上未必最佳,大量并發(fā)insert數(shù)據(jù)時(shí)可能會引起表之間的互鎖。數(shù)據(jù)庫提供的主鍵生成機(jī)制,往往是通過在一個(gè)內(nèi)部表中保存當(dāng)前主鍵狀態(tài)(如對于自增型主鍵而言,此內(nèi)部表中就維護(hù)著當(dāng)前的最大值和遞增量),之后每次插入數(shù)據(jù)會讀取這個(gè)最大值,然后加上遞增量作為新記錄的主鍵,之后再把這個(gè)新的最大值更新回內(nèi)部表中,這樣,一次Insert操作可能導(dǎo)致數(shù)據(jù)庫內(nèi)部多次表讀寫操作,同時(shí)伴隨的還有數(shù)據(jù)的加鎖解鎖操作,這對性能產(chǎn)生了較大影響。因此,對于并發(fā)Insert要求較高的系統(tǒng),推薦采用uuid.hex 作為主鍵生成機(jī)制

Hibernate工作原理及為什么要用?
原理:

1. 讀取并解析配置文件

2. 讀取并解析映射信息,創(chuàng)建SessionFactory

3. 打開Sesssion

4. 創(chuàng)建事務(wù)Transation

5. 持久化操作

6. 提交事務(wù)

7. 關(guān)閉Session

8. 關(guān)閉SesstionFactory


為什么要用:


1. 對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。

2. Hibernate是一個(gè)基于JDBC的主流持久化框架,是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn)。他很大程度的簡化DAO層的編碼工作

3. hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。

4. hibernate的性能非常好,因?yàn)樗莻€(gè)輕量級框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。


2. Hibernate是如何延遲加載?

1. Hibernate2延遲加載實(shí)現(xiàn):a)實(shí)體對象 b)集合(Collection)

2. Hibernate3 提供了屬性的延遲加載功能

當(dāng)Hibernate在查詢數(shù)據(jù)的時(shí)候,數(shù)據(jù)并沒有存在與內(nèi)存中,當(dāng)程序真正對數(shù)據(jù)的操作時(shí),對象才存在與內(nèi)存中,就實(shí)現(xiàn)了延遲加載,他節(jié)省了服務(wù)器的內(nèi)存開銷,從而提高了服務(wù)器的性能。

3. Hibernate中怎樣實(shí)現(xiàn)類之間的關(guān)系?(如:一對多、多對多的關(guān)系)

類與類之間的關(guān)系主要體現(xiàn)在表與表之間的關(guān)系進(jìn)行操作,它們都市對對象進(jìn)行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many、

4. 說下Hibernate的緩存機(jī)制

1. 內(nèi)部緩存存在Hibernate中又叫一級緩存,屬于應(yīng)用事物級緩存

2. 二級緩存:

a) 應(yīng)用及緩存

b) 分布式緩存

條件:數(shù)據(jù)不會被第三方修改、數(shù)據(jù)大小在可接受范圍、數(shù)據(jù)更新頻率低、同一數(shù)據(jù)被系統(tǒng)頻繁使用、非 關(guān)鍵數(shù)據(jù)

c) 第三方緩存的實(shí)現(xiàn)

5. Hibernate的查詢方式

Sql、Criteria,object comptosition

Hql:

1、 屬性查詢

2、 參數(shù)查詢、命名參數(shù)查詢

3、 關(guān)聯(lián)查詢

4、 分頁查詢

5、 統(tǒng)計(jì)函數(shù)

感謝各位的閱讀,以上就是“Spring,hibernate,struts的面試筆試題有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Spring,hibernate,struts的面試筆試題有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

名稱欄目:Spring,hibernate,struts的面試筆試題有哪些
文章來源:http://chinadenli.net/article16/gdgjdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站企業(yè)建站面包屑導(dǎo)航做網(wǎng)站商城網(wǎng)站網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)