锘??xml version="1.0" encoding="utf-8" standalone="yes"?>四虎视频在线精品免费网址,丁香婷婷在线,国产日韩精品一区http://www.aygfsteel.com/RR00/涓嶈鍩嬪ご鑻﹀共錛岃瀛︿範錛屽涔狅紝鍐嶅涔犮傘傘傘傘? <br> powered by <font color='orange'>R.Zeus</font>zh-cnSun, 06 Jul 2025 22:29:17 GMTSun, 06 Jul 2025 22:29:17 GMT60Hibernate3 : org.hibernate.cfg.Configuration瑙f瀽http://www.aygfsteel.com/RR00/archive/2006/08/21/64887.htmlR.ZeusR.ZeusMon, 21 Aug 2006 13:12:00 GMThttp://www.aygfsteel.com/RR00/archive/2006/08/21/64887.htmlhttp://www.aygfsteel.com/RR00/comments/64887.htmlhttp://www.aygfsteel.com/RR00/archive/2006/08/21/64887.html#Feedback0http://www.aygfsteel.com/RR00/comments/commentRss/64887.htmlhttp://www.aygfsteel.com/RR00/services/trackbacks/64887.html Hibernate3 : org.hibernate.cfg.Configuration 瑙f瀽

絎竴嬈″啓鏂囩珷錛屼笉濂界殑鍦版柟錛岃鍙d笅鐣欐儏鍝堛?/span>

org.hibernate.cfg.Configurations 鏍規嵁 xml 鏂囦歡閰嶇疆鏁翠釜宸ヤ綔榪囩▼涓墍闇瑕佺殑鍙傛暟銆備竴鑸?/span>

鎴戜滑浼氱敤 Configuration cfg = new Configuration().configure(); 鍒涘緩涓涓厤緗被銆傞偅涔堬紝榪欏彞璇濆埌搴曞仛浜嗕粈涔堝憿錛?/span>

棣栧厛錛?/span> new Configuration() 浼氬仛浜涗粈涔堝憿錛熸垜浠潵鐪嬩粬鐨勬簮鐮侊細

聽聽

protected Configuration(SettingsFactory settingsFactory) {

聽聽聽聽聽聽聽 System.out.println("Configuration(SettingsFactory settingsFactory)");

聽聽聽聽聽聽聽 this.settingsFactory = settingsFactory;

聽聽聽聽聽聽聽 reset();

聽聽聽 }

// 榛樿鏋勯犲嚱鏁幫紝鍏?/span> new SettingsFactory() 錛?/span> 鐒跺悗璋冪敤

//protected Configuration(SettingsFactory settingsFactory)

聽聽聽

public Configuration() {

聽聽聽聽聽聽聽 this(new SettingsFactory());

}

reset() 鍒濆鍖栦簡寰堝鍙橀噺錛屾劅鍏磋叮鐨勫彲浠ュ幓鐪嬫簮浠g爜錛屾病鏈変粈涔堢壒鍒殑鍦版柟銆?/span>

鎺ョ潃錛岃皟鐢?/span> configure() 鏂規硶錛?/span>

public Configuration configure() throws HibernateException {

聽聽聽聽聽聽聽 configure("/hibernate.cfg.xml");

聽聽聽聽聽聽聽 return this;

}

鍙互鐪嬪嚭錛岄粯璁や嬌鐢?/span> hibernate.cfg.xml 鏂囦歡錛屽鏋滄兂鐢ㄨ嚜瀹氫箟鐨勬枃浠訛紝鍙互璋冪敤

configure(鈥溾?xml鈥? 鏂規硶銆?/span>

public Configuration configure(String resource) throws HibernateException {

聽聽聽聽聽聽聽 log.debug("configuring from resource: " + resource);

聽聽聽聽聽聽聽 InputStream stream = getConfigurationInputStream(resource);

聽聽聽聽聽聽聽 return doConfigure(stream, resource);

}

鏍規嵁 getConfigurationInputStream(resource) 寰楀埌鏂囦歡嫻侊紝 getConfigurationInputStream(resource) 璋冪敤 ConfigHelper.getResourceAsStream(resource) 銆?/span>

public static InputStream getResourceAsStream(String resource) {

聽聽聽聽聽聽聽聽聽聽聽聽聽 String stripped = resource.startsWith("/") ?

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 resource.substring(1) : resource;

聽聽聽聽聽聽聽聽聽聽聽聽聽 InputStream stream = null;

聽聽聽聽聽聽聽聽聽聽聽聽聽 ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

聽聽聽聽聽聽聽聽聽聽聽聽聽 if (classLoader!=null) {

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 stream = classLoader.getResourceAsStream( stripped );

聽聽聽聽聽聽聽聽聽聽聽聽聽 }

// 榪欓噷鐨勪唬鐮佸彲鑳藉簲璇ユ槸 stream = Environment.class.getResourceAsStream( resource );

聽聽聽聽聽聽聽聽聽聽聽聽聽 if ( stream == null ) {

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Environment.class.getResourceAsStream( resource );

聽聽聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽聽聽聽聽聽 if ( stream == null ) {

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 stream = Environment.class.getClassLoader().getResourceAsStream( stripped );

聽聽聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽聽聽聽聽聽 if ( stream == null ) {

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 throw new HibernateException( resource + " not found" );

聽聽聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽聽聽聽聽聽 return stream;

聽聽聽聽聽聽 }

鐒跺悗 doConfigure(stream, resource) 銆?/span>

protected Configuration doConfigure(InputStream stream, String resourceName) throws HibernateException {

org.dom4j.Document doc;

聽聽聽聽聽聽聽 try {

聽聽聽聽聽聽聽聽聽聽聽 List errors = new ArrayList();

聽聽聽聽聽聽聽聽聽聽聽 SAXReader saxReader = xmlHelper.createSAXReader(resourceName, errors, entityResolver);

聽聽聽聽聽聽聽聽聽聽聽 doc = saxReader.read(new InputSource(stream));

聽聽聽聽聽聽聽聽聽聽聽 if (errors.size() != 0) {

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 throw new MappingException(

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "invalid configuration",

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 (Throwable) errors.get(0)

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 );

聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 }

entityResolver 鍦ㄥ垵濮嬪間負 entityResolver = XMLHelper.DEFAULT_DTD_RESOLVER ; 鍦?/span> reset() 鐨勬椂鍊欒緗殑銆?/span> XMLHelper.DEFAULT_DTD_RESOLVE 鍦?/span> XMLHelper 榛樿鏄?/span> XMLHelper.DEFAULT_DTD_RESOLVER= new DTDEntityResolver() 錛?/span> DTDEntityResolver 鏄敤鏉ュ姞杞?/span> dtd 鏂囦歡鐨勩傚埆璺熸垜璇翠綘涓嶇煡閬?/span> dtd 鏄粈涔堜笢瑗匡紵瀹冩湁 3 縐嶅姞杞芥柟寮忥細

1錛?span style="FONT: 7pt 'Times New Roman'">聽 鏂囦歡璺緞浠?/span> http://hibernate.sourceforge.net/ 寮澶寸殑鏂囦歡錛屽

http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd 錛?/span>

瀹冧細鎶?/span> http://hibernate.sourceforge.net 鍘繪帀錛屽姞涓?/span> org/hibernate/ 錛屾枃浠惰礬寰勪負

org/hibernate/hibernate-configuration-3.0.dtd 錛岀劧鍚庡姞杞借繖涓枃浠躲?/span>

2.聽聽聽聽聽聽 鏂囦歡璺緞浠?/span> file:// 寮澶寸殑鏂囦歡錛屽

file://hibernate-configuration-3.0.dtd 錛?/span>

瀹冧細鎶?/span> file:// 鍘繪帀錛岃礬寰勪負 hibernate-configuration-3.0.dtd 錛岀劧鍚庡姞杞借繖涓枃浠躲?/span>

3. 濡傛灉娌℃湁浠ヤ笂 2 縐嶆儏鍐碉紝鍒欑洿鎺ュ姞杞姐傚氨鏄礬寰勫悕娌℃湁淇敼榪囥?/span>

鏁翠釜榪囩▼鍦?/span> public InputSource resolveEntity(String publicId, String systemId) 涓疄鐜般?/span>

systemId 灝辨槸 dtd 鐨勮礬寰勩傚ぇ瀹跺彲浠ュ幓鐪嬬湅 SAXReader 綾昏嚜甯︾殑

protected static class SAXEntityResolver 錛屾瘮杈冩瘮杈冦?/span>

鍦ㄥ緱鍒?/span> doc 鐨勫?/span>

聽聽聽聽聽聽聽聽聽聽聽 doc = saxReader.read(new InputSource(stream));

鍚庯紝璋冪敤 protected Configuration doConfigure(org.dom4j.Document doc) 錛岃繖涓嚱鏁頒富瑕佹槸鏍規嵁 doc 鐨勫埌閰嶇疆鍙傛暟錛岀劧鍚庡瓨鍒?/span> properties 涓?/span>

鍏堟槸璁劇疆 session-factory 鐨勫悕瀛楋細

Element sfNode = doc.getRootElement().element("session-factory");

聽聽聽聽聽聽聽 String name = sfNode.attributeValue("name");

聽聽聽聽聽聽聽 if (name != null) {

聽聽聽聽聽聽聽聽聽聽聽聽 // 淇濆瓨鍒?/span> properties 涓紒

聽聽聽聽聽聽聽聽聽聽聽 properties.setProperty(Environment.SESSION_FACTORY_NAME, name);

聽聽聽聽聽聽聽 }

鐒跺悗鏄?/span> addProperties(sfNode) 錛屾妸 <property name=" "> </property> 淇濆瓨鍒?/span> properties 涓?/span>

// 榪欏彞璇濅及璁″張鏄浣欑殑

properties.setProperty(name, value);

聽聽聽聽聽聽聽聽聽聽 if (!name.startsWith("hibernate")) {

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 properties.setProperty("hibernate." + name, value);

聽聽聽聽聽聽聽聽聽聽聽 }

鎺ョ潃璋冪敤浜?/span> parseSessionFactory(sfNode, name) 錛屾妸 mapping 錛?/span> class-cache 錛?/span> collection-cache 錛?/span> listener 錛?/span> event 絳夐厤緗繚瀛樸傚埌搴曞畠淇濆瓨鍒板摢錛屾垜涔熶笉鍏ㄧ煡閬擄紝鍙湅浜?/span>

protected void parseMappingElement(Element subelement, String name), 鏍規嵁閰嶇疆鍔犺澆浜?/span> mapping 鐨勬枃浠訛紝鏈鍚庝嬌鐢?/span> HbmBinder : public static void bindRoot(Document doc, Mappings mappings, java.util.Map inheritedMetas) 淇濆瓨銆?/span> bindRoot 鏄 mapping 涓殑 xml 鏂囦歡榪涜瑙f瀽銆?/span>

HbmBinder 鍜?/span> Configuration 閮芥湁 2000 琛屼互涓婄殑浠g爜錛屽湪 Hibernate 涓湁寰堥噸瑕佺殑鍦頒綅銆?/span> Configuration 浣跨敤 .cfg.xml 錛岃?/span> HbmBinder 鍒欎嬌鐢ㄤ簡 .hbm.xml 銆?/span>

聽聽聽聽聽聽聽聽聽聽聽聽聽 extractRootAttributes( hmNode, mappings ) 鏍規嵁 <hibernate-mapping> 鐨勯厤緗紝鎶婂垎鏋愮殑緇撴灉瀛樺叆 mapping 銆?/span>



R.Zeus 2006-08-21 21:12 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 海林市| 保山市| 延寿县| 繁昌县| 额尔古纳市| 曲阳县| 万州区| 景谷| 东平县| 南充市| 二连浩特市| 马公市| 黑山县| 宁都县| 蚌埠市| 大安市| 新兴县| 武威市| 札达县| 裕民县| 昌平区| 丹寨县| 竹溪县| 高邮市| 资源县| 大洼县| 宜宾县| 苏尼特右旗| 邓州市| 壶关县| 通江县| 英山县| 和静县| 庆云县| 新疆| 永安市| 乐都县| 友谊县| 中方县| 阿勒泰市| 海兴县|