亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久久久99精品一区| 欧美无砖砖区免费| 欧美变态tickling挠脚心| 无码av免费一区二区三区试看| 成人av高清在线| 麻豆一区二区99久久久久| 亚洲成人自拍网| 亚洲综合在线电影| 亚欧色一区w666天堂| 国产电影精品久久禁18| 2023国产精品自拍| 国产成+人+日韩+欧美+亚洲| 欧美日韩精品免费观看视频| 国产福利一区二区三区视频在线| 久久精品久久久精品美女| 亚洲成av人影院| 欧美日韩久久久| 伊人开心综合网| 亚洲bdsm女犯bdsm网站| 中文字幕一区二| 在线观看亚洲一区| 极品美女销魂一区二区三区免费| 奇米影视7777精品一区二区| 午夜伊人狠狠久久| 亚洲国产视频一区二区| 亚洲小说欧美激情另类| 蜜桃一区二区三区在线| 日韩精品电影一区亚洲| 成人高清免费观看| 中文字幕亚洲在| 亚洲色图清纯唯美| 国产麻豆日韩欧美久久| 91丨九色丨蝌蚪丨老版| 欧美一区二区视频在线观看2020| 欧美视频一区二| 99国产精品视频免费观看| 91麻豆精品国产91久久久久久 | 五月激情综合网| 日韩激情视频在线观看| 久久精品72免费观看| 亚洲图片欧美一区| 亚洲午夜免费视频| 国内不卡的二区三区中文字幕| 最新久久zyz资源站| 97精品视频在线观看自产线路二| 日本高清不卡视频| 国产精品色婷婷久久58| 国产酒店精品激情| 欧美精品一区二区三区一线天视频| 国产欧美精品一区| 99国产欧美久久久精品| 婷婷六月综合亚洲| 久久精品欧美日韩| 日韩 欧美一区二区三区| 国产精品剧情在线亚洲| 欧美一区二区精美| 欧美日韩中文字幕一区| 99精品1区2区| 国产99久久久精品| 国产精品一区专区| 久久电影网电视剧免费观看| 日韩av电影一区| 亚洲一区二区精品视频| 亚洲精品成a人| 亚洲欧美自拍偷拍色图| 国产精品国产自产拍高清av王其| 久久久久久久久久久电影| 欧美xingq一区二区| 日韩一区二区三区在线视频| 欧美日韩一区二区在线观看视频 | 日韩天堂在线观看| 欧美久久一二三四区| 欧美日韩亚洲综合在线 | 99国产一区二区三精品乱码| 丁香婷婷综合激情五月色| 国产精品66部| 成人午夜在线播放| aa级大片欧美| 色综合久久久网| 在线视频一区二区三| 91传媒视频在线播放| 欧美理论在线播放| 欧美高清性hdvideosex| 欧美日韩免费视频| 欧美视频一区二| 日韩欧美一级二级| 久久久欧美精品sm网站| 国产精品欧美一级免费| 亚洲嫩草精品久久| 五月婷婷色综合| 麻豆精品视频在线观看| 国产一区二区视频在线播放| k8久久久一区二区三区| 在线观看成人免费视频| 91精品国产综合久久久久久久 | 日韩一区二区在线看片| 欧美mv日韩mv亚洲| 国产精品第四页| 一区二区三区在线观看网站| 婷婷久久综合九色综合绿巨人| 免费观看日韩av| 国产成a人亚洲精品| 色呦呦日韩精品| 日韩午夜小视频| 国产精品久久久久久久第一福利| 一区二区国产视频| 免费观看久久久4p| 成人h动漫精品一区二| 日本乱人伦aⅴ精品| 日韩精品一区二区三区视频| 日韩毛片一二三区| 日韩成人dvd| 国产v日产∨综合v精品视频| 91蜜桃免费观看视频| 日韩一区二区三区四区五区六区| 国产亚洲女人久久久久毛片| 亚洲精品免费电影| 国产一区二区三区在线观看免费| 色综合天天综合| 日韩免费观看2025年上映的电影| 国产精品毛片久久久久久久 | 青青草国产精品97视觉盛宴| 成人自拍视频在线| 69精品人人人人| 中文字幕一区二区三区在线播放 | 精品写真视频在线观看| 91丝袜美女网| 久久久精品国产免费观看同学| 亚洲一级二级三级| 成人av动漫在线| 精品免费国产一区二区三区四区| 亚洲精品免费一二三区| 国产高清精品网站| 欧美一级日韩不卡播放免费| 亚洲视频中文字幕| 国产一区二区精品久久| 7777精品伊人久久久大香线蕉完整版| 中文字幕va一区二区三区| 久久99热狠狠色一区二区| 欧美日韩久久久| 一区二区三区在线高清| a在线欧美一区| 久久免费的精品国产v∧| 蜜臀av性久久久久蜜臀av麻豆| 91久久人澡人人添人人爽欧美| 国产精品日日摸夜夜摸av| 精品一区二区三区日韩| 精品成人a区在线观看| 中文在线免费一区三区高中清不卡| 婷婷一区二区三区| 欧美性大战久久久久久久蜜臀| 国产精品国产三级国产a| 国产精品夜夜嗨| 精品国产一区二区三区四区四| 日韩av一区二区三区四区| 欧美色视频在线| 亚洲午夜在线视频| 欧美日韩中文国产| 亚洲va韩国va欧美va| 在线观看一区二区精品视频| 一区二区三区在线影院| 日本高清无吗v一区| 亚洲欧美日韩一区二区| av亚洲精华国产精华| 国产精品久久毛片| 97久久超碰精品国产| 亚洲免费高清视频在线| 日本精品一级二级| 夜夜嗨av一区二区三区中文字幕| 99久久伊人久久99| 18欧美乱大交hd1984| 91九色最新地址| 亚洲成va人在线观看| 制服丝袜国产精品| 久久99精品国产.久久久久| 欧美精品一区二区久久久| 国产成人精品免费| 一区二区中文视频| 欧美性大战久久久久久久蜜臀| 亚洲国产aⅴ天堂久久| 欧美日韩国产经典色站一区二区三区 | 成人自拍视频在线| 亚洲欧洲精品一区二区三区| 色吧成人激情小说| 免费视频最近日韩| 国产亚洲一本大道中文在线| 99热精品一区二区| 亚洲一区av在线| 日韩精品资源二区在线| 国产99久久久精品| 亚洲免费资源在线播放| 欧美精选午夜久久久乱码6080| 捆绑紧缚一区二区三区视频| 国产日韩欧美一区二区三区综合| 99riav久久精品riav| 午夜影视日本亚洲欧洲精品| 久久综合视频网| 日本韩国一区二区| 麻豆成人久久精品二区三区小说| 日本一区二区在线不卡|