2009年10月9日
摘要: 突然間感覺(jué)身體有很多問(wèn)題,而我的年齡才只有20多歲,簡(jiǎn)直不敢相信,一場(chǎng)感冒的突襲,竟持續(xù)1月之久,至今,我都沒(méi)有完全康復(fù),隨之而來(lái)的又是一系列其它的不適,我不知道,自己的身體究竟怎么了?我才只有20多歲,身體竟然如此不堪一擊。忽然想起,近年來(lái),真的很好鍛煉身體,白天上班做一天,而上下班不是地鐵就是公交,走路很少,回到家里更是很少外出。基本上也是坐著,吃飯坐著,看電視坐著,打電腦還是坐著。每天10幾個(gè)小時(shí)奉獻(xiàn)給了“作者”..
閱讀全文
Error creating bean with name 'sessionFactory' defined
更多是因?yàn)閖ar包沖突所致,asm-util-2.2.3,asm-2.2.3,asm-commons-2.2.3 這三個(gè)保留第二個(gè)。
另外,關(guān)于用eclipse自動(dòng)添加spring支持,生成的applicationContext.xml文件里定義的內(nèi)容:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
應(yīng)該改為:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
摘要: 1.對(duì)查詢進(jìn)行優(yōu)化,應(yīng)盡量避免全表掃描,首先應(yīng)考慮在 where 及 order by 涉及的列上建立索引。
2.應(yīng)盡量避免在 where 子句中對(duì)字段進(jìn)行 null 值判斷,否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描,如:
select id from t where num is null
可以在num上設(shè)置默認(rèn)值0,確保表中num列沒(méi)有null值,然后這樣查詢:
select id from t where num=0
閱讀全文
摘要: PROPAGATION_REQUIRED--支持當(dāng)前事務(wù),如果當(dāng)前沒(méi)有事務(wù),就新建一個(gè)事務(wù)。這是最常見(jiàn)的選擇。
PROPAGATION_SUPPORTS--支持當(dāng)前事務(wù),如果當(dāng)前沒(méi)有事務(wù),就以非事務(wù)方式執(zhí)行。
PROPAGATION_MANDATORY--支持當(dāng)前事務(wù),如果當(dāng)前沒(méi)有事務(wù),就拋出異常。
PROPAGATION_REQUIRES_NEW--新建事務(wù),如果當(dāng)前存在事務(wù),把當(dāng)前事務(wù)掛起。
PROPAGATION_NOT_SUPPORTED--以非事務(wù)方式執(zhí)行操作,如果當(dāng)前存在事務(wù),就把當(dāng)前事務(wù)掛起。
PROPAGATION_NEVER--以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則拋出異常。
閱讀全文
摘要: Session.load/get方法均可以根據(jù)指定的實(shí)體類(lèi)和id從數(shù)據(jù)庫(kù)讀取記錄,并返回與之對(duì)應(yīng)的實(shí)體對(duì)象。其區(qū)別在于:
如果未能發(fā)現(xiàn)符合條件的記錄,get方法返回null,而load方法會(huì)拋出一個(gè)ObjectNotFoundException。
Load方法可返回實(shí)體的代理類(lèi)實(shí)例,而get方法永遠(yuǎn)直接返回實(shí)體類(lèi)。
load方法可以充分利用內(nèi)部緩存和二級(jí)緩存中的現(xiàn)有數(shù)據(jù),而get方法則僅僅在內(nèi)部緩存中進(jìn)行數(shù)據(jù)查找,如沒(méi)有發(fā)現(xiàn)對(duì)應(yīng)數(shù)據(jù),將越過(guò)二級(jí)緩存,直接調(diào)用SQL完成數(shù)據(jù)讀取。
閱讀全文
摘要: 延遲加載機(jī)制是為了避免一些無(wú)謂的性能開(kāi)銷(xiāo)而提出來(lái)的,所謂延遲加載就是當(dāng)在真正需要數(shù)據(jù)的時(shí)候,才真正執(zhí)行數(shù)據(jù)加載操作。在Hibernate中提供了對(duì)實(shí)體對(duì)象的延遲加載以及對(duì)集合的延遲加載,另外在Hibernate3中還提供了對(duì)屬性的延遲加載。下面我們就分別介紹這些種類(lèi)的延遲加載的細(xì)節(jié)。
閱讀全文
摘要: OpenSessionInViewFilter是Spring提供的一個(gè)針對(duì)Hibernate的一個(gè)支持類(lèi),其主要意思是在發(fā)起一個(gè)頁(yè)面請(qǐng)求時(shí)打開(kāi) Hibernate的Session,一直保持這個(gè)Session,直到這個(gè)請(qǐng)求結(jié)束,具體是通過(guò)一個(gè)Filter來(lái)實(shí)現(xiàn)的。
由于 Hibernate引入了Lazy Load特性,使得脫離Hibernate的Session周期的對(duì)象如果再想通過(guò)getter方法取到其關(guān)聯(lián)對(duì)象的值,Hibernate會(huì)拋出一個(gè) LazyLoad的Exception。所以為了解決這個(gè)問(wèn)題,Spring引入了這個(gè)Filter,使得Hibernate的Session的生命周期變長(zhǎng)。
閱讀全文
摘要: 最后,再補(bǔ)充一些:
分組group
常用于統(tǒng)計(jì)時(shí),如分組查總數(shù):
select gender,count(sno)
from students
group by gender
(查看男女學(xué)生各有多少)
注意:從哪種角度分組就從哪列"group by"
閱讀全文
摘要: LIKE語(yǔ)句的語(yǔ)法格式是:select * from 表名 where 字段名 like 對(duì)應(yīng)值(子串),它主要是針對(duì)字符型字段的,它的作用是在一個(gè)字符型字段列中檢索包含對(duì)應(yīng)子串的。
閱讀全文
摘要: PRIMARY KEY 約束唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中的每條記錄。
主鍵必須包含唯一的值。
主鍵列不能包含 NULL 值。
每個(gè)表應(yīng)該都一個(gè)主鍵,并且每個(gè)表只能有一個(gè)主鍵。
SQL PRIMARY KEY Constraint on CREATE TABLE
閱讀全文
摘要: 異常1:not-null property references a null or transient value
解決方法:將“一對(duì)多”關(guān)系中的“一”方,not-null設(shè)置為false
閱讀全文
摘要: 實(shí)際上接口和抽象類(lèi)的選擇不是隨心所欲的。要理解接口和抽象類(lèi)的選擇原則,有兩個(gè)概念很重要:對(duì)象的行為和對(duì)象的實(shí)現(xiàn)。如果一個(gè)實(shí)體可以有多種實(shí)現(xiàn)方式,則在設(shè)計(jì)實(shí)體行為的描述方式時(shí),應(yīng)當(dāng)達(dá)到這樣一個(gè)目標(biāo):在使用實(shí)體的時(shí)候,無(wú)需詳細(xì)了解實(shí)體行為的實(shí)現(xiàn)方式。也就是說(shuō),要把對(duì)象的行為和對(duì)象的實(shí)現(xiàn)分離開(kāi)來(lái)。既然Java的接口和抽象類(lèi)都可以定義不提供具體實(shí)現(xiàn)的方法,在分離對(duì)象的行為和對(duì)象的實(shí)現(xiàn)時(shí),到底應(yīng)該使用接口還是使用抽象類(lèi)呢?
閱讀全文