其实原理都是一样 就是用一个继承了实现javax.sql.DataSource的DataSource类
在Spring中用bean来组装,管理 来配置其属性 提供给sessionFactory来组装
API上可能属性没有写出来 但是可以看到方法 要想真正了解 还是要看源代码中的详细属性
比如在cp30中这个具体的DataSource是
com.mchange.v2.c3p0.ComboPooledDataSource
他的源代码中有以下片段:

public String getDriverClass()

...{ return dmds.getDriverClass(); }

public void setDriverClass( String driverClass ) throws PropertyVetoException

...{
dmds.setDriverClass( driverClass );
// System.err.println("setting driverClass: " + driverClass);
}

public String getJdbcUrl()

...{
// System.err.println("getting jdbcUrl: " + dmds.getJdbcUrl());
return dmds.getJdbcUrl();
}

public void setJdbcUrl( String jdbcUrl )

...{
dmds.setJdbcUrl( jdbcUrl );
this.resetPoolManager( false );
// System.err.println("setting jdbcUrl: " + jdbcUrl + " [dmds@" + C3P0ImplUtils.identityToken( dmds ) + "]");
// if (jdbcUrl == null)
// new Exception("*** NULL SETTER ***").printStackTrace();
}

public Properties getProperties()

...{
//System.err.println("getting properties: " + dmds.getProperties());
return dmds.getProperties();
}

public void setProperties( Properties properties )

...{
//System.err.println("setting properties: " + properties);
dmds.setProperties( properties );
this.resetPoolManager(false);
}

// DriverManagerDataSource "virtual properties" based on properties
public String getUser()

...{ return dmds.getUser(); }

public void setUser( String user )

...{
dmds.setUser( user );
this.resetPoolManager( false );
}

public String getPassword()

...{ return dmds.getPassword(); }

public void setPassword( String password )

...{
dmds.setPassword( password );
this.resetPoolManager( false );































































................
里面有个property属性的get和set方法
因此在bean中可以对其进行配置
组装到sessionFactory中之后 还可以通过hibernateProperties对Hibernate进行一些配置
一 c3p0
beas-config.xml


























































































































这么一来在修改数据库连接的部分就变的非常简单 修改后也不用修改除sessionFactory的组装外的其他代码
二 proxool
这个可以通过对hibernateProperties的属性配置来设置
beans-config.xml


















然后单独写一个proxool.xml





















