hibernate源码浅析(net.sf.hibernate.cfg)

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

刚刚无聊,看了些源代码,写了些记录。

发表出来,希望初学者有用。如有不对的地方,请指正。

Setting类:数据库,连接池设置的Bean,主要是各种参数的set&get方法。

Environment类:环境参数定义。(常量)

NamingStratgy:命名规则定义的接口。

DefaultNamingStrategy:默认命名规则。(实现NamingStratgy接口)

ImprovedNamingStrategy:改善命名规则。(实现NamingStratgy接口)

就是加下划线。其中有个addUnderscores()方法。

private String addUnderscores(String name) {

StringBuffer buf = new StringBuffer( name.replace('.', '_') );

for (int i=1; i<buf.length()-1; i++) {

if (

'_'!=buf.charAt(i-1) &&

Character.isUpperCase( buf.charAt(i) ) &&

!Character.isUpperCase( buf.charAt(i+1) )

) {

buf.insert(i++, '_');

}

}

return buf.toString().toLowerCase();

}

按大写分开,加上"_",然后返回小写的toString();

SettingFactory类:设置属性类。

其中有buildSettings(Properties properties)方法,设置自定义属性。

Mapping类:有点不清楚。

设置类和表之间的映射。class 进去,table出来。:)(了解不清晰。)

Binding类:PO和数据库中表及其之间的映射的绑定。

Configuration类,配置类

Configuration()构建器,调用reset(),重置参数。

还有addClass(),addFile(),add(Document doc) ,addDirectory(),addJar(),addInputString(),addResoure()等一系列方法,通过不同的资源进行配置。

还有通过不同参数重构了许多configure()方法。

configure()通过hibernate.cfg.XML配置。

/**

* Use the mappings and properties specified in an application

* resource named <tt>hibernate.cfg.xml</tt>.

*/

public Configuration configure() throws HibernateException {

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

return this;

}

然后比较重要的是生成SessionFactory;

public SessionFactory buildSessionFactory() throws HibernateException {

secondPassCompile();

validate();

Environment.verifyProperties(properties);

Properties copy = new Properties();

copy.putAll(properties);

Settings settings = buildSettings();

configureCaches(settings);

return new SessionFactoryImpl(this, settings);

}

其他的一些就是通过配置文件设置各种属性。比如数据库方言Dialect等。

------------------------------------------------------------------------------

(出处:http://www.knowsky.com)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航