亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hibernate.txt

?? Java大部分的基礎知識,EJB3,EJB2,WEBSERVICE,SOAP,JMS,MQ,還有些面試題
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
七、如何實現hibernate的annotation
	1、annotation將相關的配置寫在代碼中,而不是寫在xml中
           這樣可以減少xml文件,方便維護。
        2、當用到hibernate3.2的注解時,不能用Configuration而是用
           AnnotationConfiguration加載相關的配置文件,其可以加載
           *.hbm.xml也以加載有注解的類,一個表只能用一種方式加載,
           如果用兩種就會出錯。
        3、在hibernate.cfg.xml說明注解類的位置
        	<mapping class="hibernate.Users"></mapping>
一、為什么用annotation
	annotation通過注解可以更方便的進行開發,也是將來spring、hibernate、strust轉化的方向。
二、hibernate中annotation的特點
    hibernate3.2以上版本支持annotation,其注解與ejb3.0幾乎一樣,
    配置及方法操作與已有的hibernate是一樣,只是核心類中的Configuration要改成
    AnnotationConfiguration加載核心配置文件hibernate.cfg.xml文件。 
    hibernate.cfg.xml中可以加載*.hbm.xml也可以加載有注解的類    
    	<mapping resource="hibernate/customer.hbm.xml"/>:加載customer.hbm.xml文件
    	<mapping class="hibernate/Buy"/>:加載Buy類
三、具體的注解
	1、類名類的說明:		
		@Entity
		@Table(name = "users")
	1、主鍵:在get方法之前說明	
		@Id
		@GeneratedValue(strategy = GenerationType.IDENTITY)
		若沒有@GeneratedValue注解,主鍵的值需要開發人員在編程中給定,不能自動生成。
		若有@GeneratedValue,主鍵的值不需要開發人員給定,由數據庫自動生成。		
	2、字段:
		1、@Transient //聲明其是一個屬性,不存于數據庫中
		2、若沒寫任何說明,字段名與數據庫字段名相同
		3、字段具體說明:			
			@Column(name = "email")  //屬性名與數據庫字段名不同,通過name說明具體字段
			@Basic(fetch = FetchType.LAZY) //說明當前字段是延遲加載
		4、OneToMany:如果有兩個表,一個是one,另一個是many,該注解在one中,mappedBy="role" 
			     "role"與many中Role類型屬性要一致,否則報錯。
			@OneToMany(mappedBy = "role")  //
			@OrderBy("name")   
		5、ManyToOne:該注釋在many對象中設置,CascadeType.PERSIST代表主增從增,CascadeType.MERGE代表
			     主改從改。
		   @ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE })	   
		   @JoinColumn(name = "role_id") //role_id是many表對應的外鍵列名
hibernate高級應用
事務的四大特點?
	原子性:要么全成功,要么全失敗
	隔離性:事務與事務之間不影響
	一致性:代碼實現所有業務相關的操作
	持久性:保存到數據庫中
對于一個表,hibernate對應的主鍵生成機制有很多種?
	assigned:主鍵值需要手動給定,開發人員必須手動給值
	native:主鍵由數據庫自動生成,hibernate不管,開發人員也不用管。
七、如何實現hibernate的annotation
	1、annotation將相關的配置寫在代碼中,而不是寫在xml中
           這樣可以減少xml文件,方便維護。
        2、當用到hibernate3.2的注解時,不能用Configuration而是用
           AnnotationConfiguration加載相關的配置文件,其可以加載
           *.hbm.xml也以加載有注解的類,一個表只能用一種方式加載,
           如果用兩種就會出錯。
        3、在hibernate.cfg.xml說明注解類的位置
        	<mapping class="hibernate.Users"></mapping>
沒有鎖出現的問題?
	1、臟讀:后一個事務處理的數據是前一事務修改但沒有提交的數據。
		事務1:
			update buy set amount=amount+100 where buyID=1;
			sleep(1000);
			rollback;
		事務2:數據來源事務1修改的數據
			update buy set amount=amount+100 where buyID=1;
			commit;
	2、覆蓋更新:兩個事務同時讀取數據,
		    后一處事務將前一個事務修改的數據覆蓋了。
		事務1:
			update buy set amount=amount+100 where buyID=1;
			sleep(1000);
			commit;
		事務2:數據來源事務1修改的數據
			update buy set amount=amount+100 where buyID=1;
			commit;
	3、不可重復讀:一個事務兩個相同的select語句,第一次讀取的數據
		與第二次讀取的數據不一樣,主要針對select語句。
		事務1:
			select * from buy;
			sleep(1000);
			select * from buy;
			commit;
		事務2:數據來源事務1修改的數據
			update buy set amount=amount+100 where buyID=1;
			commit;
	4、幻想讀:第一次讀有,第二讀沒有,反之亦然。
		與第二次讀取的數據不一樣,主要針對insert、delete。
		事務1:
			select * from buy;
			sleep(1000);
			select * from buy;
			commit;
		事務2:數據來源事務1修改的數據
			delete from buy where buyID=1;
			commit;
鎖的分類?
	1、讀未提交
	2、讀已提交(數據庫的默認方式)
		1、讀取的數據是已提交的,防止臟讀。
		2、對于更新,在提交之前會將當前行的版本與數據庫的版本
		   比較,若小于數據庫的版本報錯,回退。若等于數據庫的版
		   本提交。
		3、分類:
			樂觀鎖:一個游標取出的行,另一個事務可以更新,
			       如前游標所在事務更新另一事務已更新的數據時會
			       與數據庫的版本比較,發現版本小于數據庫的版本,
			       報錯,回退。
			       增強了并發性,不能保證當前游標一定修改成功。
			悲觀鎖:一個游標取出行后,對所有的行加鎖,其余的事務只可
				以查,不可以改。
				弱化了并發性,但能保證當前游標一定修改成功。
	3、可重復讀:將上一個select取出的數據保存一個副本,下一個select語句直接從
		    副本中取。
	4、串行化:一個事務對一個表select后,針對該表其余的事務只能讀,不可
		  增刪改。
事務的實現方式?
	1、代碼式
		con.setAutoCommit(false);
		con.commit();
		
		Transaction trans=session.beginTransaction();
		trans.commit();
		trans.rollback();
	2、聲明式:通過注解或xml文件配置具體的事務處理
		1、spring
		2、ejb2
		3、ejb3
spring/ejb2/ejb3選擇事務的方式?
	1、required:默認的方式,有則用已有的事務,沒有則產生一個新的事務。
	2、mandanory:有則用,沒有則報錯
	3、required_new:不管前面有沒有都產生一個新的,
			如果有將前一個事務掛起用新的事務
			如果沒有用新的事務。
	4、support:有則用,沒有則不用。
	5、not supported:有則報錯,沒有正常運行。
hibernate緩存的分類:
	1、事務級:就是session級,即一級緩存,緩存的數據在當前事務內有效,
		  當前事務結束,緩存結束。
	2、應用級:就是SessionFactory,即二級緩存,緩存的數據在整個應用程序內
		  有效,所有事務都可以共享二級緩存。
		  人為控制SessionFacatory只有一個實例。
	3、集群級:有多個應用服務器,每一個應用服務有一個SessionFactory,
		  服務器與服務器可以通信。
		  要慎用,因為服務器與服務器通信及交互會占用大量的資源。
緩存的原則:
	1、數據的大小在可接收的范圍內。
	2、重復查詢使用率的。
	3、更新小或并發更新小。
緩存的實現(ehcache):
	1、將ehcache.jar包拷入到lib目錄下
	2、在src根目錄下加入ehcache.xml文件
	3、在hibernate.cfg.xml中加入ehcache的驅動屬性
		及支持查詢的緩存
	4、在*.hbm.xml文件中加入<cache usage="read-write"/>
	5、在執行query之前設置setCacheable(true)
iterator與list方法之間的區別
	1、list只執行一次sql,利用緩存的前提是Hql必須相等。
	   如果hql相等,在緩存中沒有會通過主鍵查找對應的對象。
	2、如果沒有緩存iterator會執行(n行+1)將sql,第一個sql是查詢
	   出所有的主鍵,第二種sql是根據主鍵查找到得每一個對象,有多少
	   行就要執行對應行數的sql
	   只要緩存中有iterator就會用。
	3、第一次查詢用list方法,以后的查詢用iterator

六、hibernate中的manyToMany
	power:權力
		private Set<Role> roles;//及get、set方法
		配置文件信息:
			<set name="roles" table="powerrole">
				<key column="powerID"/>//powerID是中間的外鍵列
				<many-to-many class="hibernate.Role" column="roleID"/>
			</set>
			select * from role where roleID in
			{
				select roleID from powerrole where powerID="當前對象的主鍵";
			}
	role:角色
		private Set<power> powers;//及get、set方法
		配置信息
		<set name="powers" table="powerrole">
			<key column="roleID">
			<many-to-many class="hibernate.Power" column="powerID"/>
		</set>
	powerrole:中間表
get方法與load方法區別
	1、相同點
		get/load都根據類說明及主鍵查找
		在hibernate3.2都會利用二級緩存
	2、不同點
		get:
			1、返回的是一真實的對象
			2、如果沒有找到返回null
		load:
			1、返回的是一個代理
			2、如果沒有找到返回ObjectNotFoundException
緩存的特點:
	1、load、get、update、saveOrUpdate、save、delete都會自動更新緩存
	2、query.exeuteUpdate()執行效率但不同步緩存
	3、刪除緩存中的數據
		--一級緩存
			session.evict(Customer.class)
		--二級緩存
			sessionFactory.evict(Customer.class)
	4、利用緩存的過程
		首先在一級緩存中找,如果沒找到在二級緩存中找,
		如果還沒有找到執行sql數據庫中查找。
hibernate的優化策略:
	1、選擇適當的緩存機制,如那些表需要二級緩存
	2、管理好session的生命周期,一般是一個線程一個session
	3、使用延遲加載
		OneToMany或ManyToOne可以用延遲加載
		大文本或大字節也用延遲加載
	4、盡量使用樂觀鎖而不表悲觀鎖。
		非觀鎖:
			1、
				Query query1=session.createQuery("select * from Customer for update");
			2、
				Query query1=session.createQuery("select * from Customer");
				query1.setLockMode("Customer",LockMode.UPGRADE);
		樂觀鎖:默認的方式 
			<class
				optimistic-lock="version/none"
			/>
	5、如果可能主鍵使用uuid,而不是identity或native
		在增加時對于類型是identity主鍵,會生成兩個sql
		第一個sql是取最大的主鍵

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合区在线| 一区二区免费视频| 色综合天天在线| 91精品婷婷国产综合久久性色| 久久免费午夜影院| 午夜视频一区二区三区| 成人三级伦理片| 精品国产一区二区三区四区四| 一区二区三区日韩欧美| 成人国产在线观看| 久久综合久久鬼色中文字| 亚洲电影视频在线| 色婷婷综合久久久久中文 | 久久综合色天天久久综合图片| 一区二区三区欧美日| 风间由美一区二区三区在线观看 | 国产精品传媒视频| 韩国女主播一区| 91精品国产aⅴ一区二区| 夜夜嗨av一区二区三区中文字幕| 波多野结衣中文字幕一区二区三区| 精品国产免费人成在线观看| 婷婷一区二区三区| 欧美日韩黄视频| 亚洲国产欧美在线人成| 成人avav影音| 国产精品久线在线观看| 成人性色生活片| 国产精品美女久久久久久久| 国产69精品久久777的优势| 久久久电影一区二区三区| 久久99久久久欧美国产| 欧美日韩免费一区二区三区视频| 一区二区三区蜜桃| 欧美日韩免费电影| 青青草原综合久久大伊人精品优势| 欧美日本韩国一区二区三区视频| 五月天一区二区| 欧美日韩精品电影| 成人欧美一区二区三区1314| 色综合久久天天| 亚洲成av人**亚洲成av**| 欧美精品久久久久久久多人混战| 日日夜夜精品免费视频| 欧美大片在线观看一区| 亚洲国产精品精华液2区45| 风间由美一区二区av101| 亚洲色图一区二区三区| 欧美日韩在线综合| 欧美一级免费观看| 久久99热狠狠色一区二区| 久久青草国产手机看片福利盒子 | 亚洲成人免费影院| 欧美一区二区精品在线| 国产精品小仙女| 最新国产の精品合集bt伙计| 欧美日韩成人综合天天影院| 精品国产乱子伦一区| gogo大胆日本视频一区| 亚洲一区二区三区三| 精品理论电影在线观看| 99热99精品| 日韩和欧美的一区| 国产精品午夜在线| 欧美日韩国产免费| 国产成人在线视频网址| 亚洲国产日韩a在线播放性色| 日韩欧美卡一卡二| jlzzjlzz亚洲女人18| 日韩国产在线观看一区| 欧美韩日一区二区三区四区| 欧美自拍丝袜亚洲| 国产精品影视在线观看| 亚洲香肠在线观看| 日本一区二区不卡视频| 91精品久久久久久久91蜜桃| av在线一区二区| 久久99精品久久久久婷婷| 亚洲精品国产一区二区三区四区在线| 日韩欧美国产系列| 在线观看国产日韩| 不卡欧美aaaaa| 黑人精品欧美一区二区蜜桃| 成人h精品动漫一区二区三区| 亚瑟在线精品视频| 国产精品国产自产拍高清av王其 | 国产精品丝袜一区| 日韩欧美黄色影院| 91黄色免费看| 成人美女在线视频| 日本成人在线视频网站| 亚洲女与黑人做爰| 中日韩av电影| 国产视频911| 精品久久久久久久人人人人传媒| 欧美色视频在线观看| 色婷婷av一区二区三区软件| 国产suv一区二区三区88区| 毛片基地黄久久久久久天堂| 午夜精品爽啪视频| 亚洲品质自拍视频| 中文字幕一区二区三区四区不卡 | 成人看片黄a免费看在线| 精久久久久久久久久久| 久久精品国产秦先生| 午夜精品视频一区| 午夜欧美视频在线观看 | 综合久久久久久久| 国产精品天美传媒沈樵| 亚洲国产成人自拍| 国产欧美精品在线观看| 久久精品人人爽人人爽| 久久久青草青青国产亚洲免观| 欧美大片国产精品| 久久综合一区二区| 国产午夜精品久久久久久久 | 一级做a爱片久久| 亚洲色图欧美偷拍| 亚洲另类一区二区| 亚洲一区二区欧美| 污片在线观看一区二区| 婷婷六月综合亚洲| 日本在线观看不卡视频| 日韩精品欧美精品| 久久精品av麻豆的观看方式| 久久99最新地址| 成人国产精品视频| 色爱区综合激月婷婷| 欧美日韩一区在线观看| 日韩欧美中文字幕公布| 欧美精品一区二| 中文字幕一区免费在线观看| 一区二区三区中文免费| 午夜日韩在线电影| 经典三级视频一区| 99久久伊人精品| 欧美午夜精品一区二区蜜桃| 欧美一区二区私人影院日本| 26uuu国产日韩综合| 一色桃子久久精品亚洲| 亚洲成年人网站在线观看| 蜜臀av一区二区在线免费观看| 国产精品一级片| 欧洲日韩一区二区三区| 麻豆成人久久精品二区三区红| 国产麻豆一精品一av一免费| 91一区二区在线| 91精品国产综合久久久蜜臀粉嫩| 国产亚洲福利社区一区| 亚洲一区二三区| 国产精品久久久久婷婷二区次| 亚洲综合丝袜美腿| 韩国成人精品a∨在线观看| 色婷婷综合久久久久中文一区二区| 91精品国产福利| 中文字幕在线不卡国产视频| 奇米色一区二区| 9人人澡人人爽人人精品| 日韩亚洲欧美在线观看| 亚洲人精品午夜| 国产一区福利在线| 欧美日韩一区二区在线观看| 国产欧美日韩一区二区三区在线观看| 亚洲一级二级三级| 成人精品视频一区二区三区| 日韩欧美不卡在线观看视频| 亚洲精品免费在线| 国产xxx精品视频大全| 日韩一二三区不卡| 亚洲一卡二卡三卡四卡| 成人午夜在线视频| 精品成人一区二区三区| 午夜精品久久一牛影视| 色一情一伦一子一伦一区| 久久精品欧美一区二区三区不卡 | 粉嫩aⅴ一区二区三区四区| 欧美欧美欧美欧美首页| 亚洲少妇屁股交4| 懂色av中文字幕一区二区三区| 日韩欧美视频一区| 视频一区视频二区在线观看| 欧美中文一区二区三区| 亚洲欧洲色图综合| 成人黄色小视频在线观看| 欧美精品一区二区三区久久久| 日韩精品1区2区3区| 欧美在线三级电影| 亚洲精品水蜜桃| 成人av在线一区二区| 日本一区二区视频在线| 国产激情一区二区三区桃花岛亚洲| 日韩一区二区三区电影在线观看| 亚洲一区二区美女| 精品视频在线看| 亚洲午夜精品17c| 欧美日本视频在线| 日本sm残虐另类| 精品国产免费一区二区三区香蕉| 免费在线观看一区二区三区| 日韩欧美视频一区|