程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> ibatis實戰之OR映射

ibatis實戰之OR映射

編輯:C++入門知識

相對Hibernate等ORM實現而言,ibatis的映射配置更為簡潔直接,下面是一個典型的配置文件。

  


	
	
	
	
		 
		
		
	

	
	
	
	
		insert into user values(#id#,#name#,#age#)
	

	
		update  user set name = #name# where id = #id#
	

可以看到,映射文件主要分為兩個部分:模塊配置和Statement配置

一、模塊配置包括:

typeAlias節點:

定義了本映射文件中的別名,以避免過長變量值的反復書寫,此例中通過typeAlias節點為類"com.itmyhome.User"定義了一個別

名"user",這樣在本配置文件的其他部分,需要引用"com.itmyhome.User"類時,只需以其別名替代即可。

cacheModel節點

定義了本映射文件中使用的Cache機制


	 
	
	
這裡聲明了一個名為"userCache"的cacheModel,之後可以在Statement聲明中對其進行引用


	



	    insert into user values(#id#,#name#,#age#)



	update  user set name = #name# where id = #id#



	delete user where id = #id#
參數描述parameterClass參數類.指定了參數的完整類名(包括包路徑).
可通過別名避免每次重復書寫冗長的類名.resultClass結果類.指定結果類型的完整類名(包括包路徑)
可通過別名避免每次重復書寫冗長的類名.parameterMap參數映射,需結合parameterMap節點對映射關系加以定義.
對於存儲過程之外的statement而言,建議使用
parameterClass作為參數配置方式,一方面避免了
參數映射配置工,另一方面其性能表現也更加出色。resultMap結果映射,需結合resultMap節點對映射關系加以定義。cacheModelstatement對應的Cache模塊。對於參數定義而言,盡量使用parameterClass,即直接將POJO作為statement的調用參數,

這樣在SQL中可以直接將POJO的屬性作為參數加以設定,如:


	alter table user set name = #name# where id = #id#
這裡將com.itmyhome.User類設定為updateUser的參數之後,我們即可在SQL中通過#name#

對POJO的屬性進行引用。如下:

set name = #name# where id = #id#
運行期,ibatis將通過調用User對象的getName,getId方法獲得相應的參數值,並將其作為SQL的參數。

如果parameterClass中設定的是jdk的中的簡單對象類型,如String、Integer,ibatis會直接將其作為SQL中的參數值。

我們也可以將包含了參數數據的Map對象傳遞給Statement如:


	update  user set name = #name# where id = #id#


Map map = new HashMap();
map.put("id", "1");
map.put("name", "hello");
sqlMap.update("updateUser",map);
這裡傳入的參數就是一個Map對象,ibatis將以key "id"、"name"從中提取對應的參數值

在SQL中設定參數名時,可以同時指定參數類型,如:

update  user set name = #name:VARCHAR# where id = #id:NUMBERIC#



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved