欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Spring+Hibernate 配置和使用c3p0和proxool連接

系統 2094 0

其實原理都是一樣 就是用一個繼承了實現javax.sql.DataSource的DataSource類

在Spring中用bean來組裝,管理 來配置其屬性 提供給sessionFactory來組裝

API上可能屬性沒有寫出來 但是可以看到方法要想真正了解 還是要看源代碼中的詳細屬性

比如在cp30中這個具體的DataSource是

com.mchange.v2.c3p0.ComboPooledDataSource
他的源代碼中有以下片段:

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

public void setDriverClass(StringdriverClass) throws PropertyVetoException
... {
dmds.setDriverClass(driverClass);
// System.err.println("settingdriverClass:"+driverClass);
}


public StringgetJdbcUrl()
... {
// System.err.println("gettingjdbcUrl:"+dmds.getJdbcUrl());
return dmds.getJdbcUrl();
}


public void setJdbcUrl(StringjdbcUrl)
... {
dmds.setJdbcUrl(jdbcUrl);
this .resetPoolManager( false );
// System.err.println("settingjdbcUrl:"+jdbcUrl+"[dmds@"+C3P0ImplUtils.identityToken(dmds)+"]");
// if(jdbcUrl==null)
// newException("***NULLSETTER***").printStackTrace();
}


public PropertiesgetProperties()
... {
// System.err.println("gettingproperties:"+dmds.getProperties());
return dmds.getProperties();
}


public void setProperties(Propertiesproperties)
... {
// System.err.println("settingproperties:"+properties);
dmds.setProperties(properties);
this .resetPoolManager( false );
}


// DriverManagerDataSource"virtualproperties"basedonproperties
public StringgetUser()
... { return dmds.getUser();}

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


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

public void setPassword(Stringpassword)
... {
dmds.setPassword(password);
this .resetPoolManager( false );
................

里面有個property屬性的get和set方法

因此在bean中可以對其進行配置

組裝到sessionFactory中之后 還可以通過hibernateProperties對Hibernate進行一些配置

一 c3p0

beas-config.xml

<? xmlversion="1.0"encoding="UTF-8" ?>
<! DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd" >

< beans >

<!-- =================================================================== -->
<!-- JDBCdataSource -->
<!-- =================================================================== -->

<!-- ***********************************************************************
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<propertyname="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<propertyname="url">
<value>jdbc:mysql://localhost:3306/shtest</value>
</property>
<propertyname="username">
<value>root</value>
</property>
<propertyname="password">
<value>password</value>
</property>
</bean>
************************************************************************
-->

<!-- =================================================================== -->
<!-- c3p0dataSource -->
<!-- =================================================================== -->


< bean id ="dataSource" class ="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method ="close" >
< property name ="driverClass" >
< value > com.mysql.jdbc.Driver </ value >
</ property >
< property name ="jdbcUrl" >
< value > jdbc:mysql://localhost:3306/shtest </ value >
</ property >
< property name ="properties" >
< props >
< prop key ="c3p0.acquire_increment" > 2 </ prop >
< prop key ="c3p0.idle_test_period" > 200 </ prop >
< prop key ="c3p0.timeout" > 1000 </ prop >
< prop key ="c3p0.max_size" > 100 </ prop >
< prop key ="hibernate.c3p0.max_statements" > 100 </ prop >
< prop key ="hibernate.c3p0.min_size" > 20 </ prop >
< prop key ="user" > root </ prop >
< prop key ="password" > password </ prop >
</ props >
</ property >
</ bean >


<!-- =================================================================== -->
<!-- HibernatesessionFactory -->
<!-- =================================================================== -->

< bean id ="sessionFactory" class ="org.springframework.orm.hibernate3.LocalSessionFactoryBean" destroy-method ="close" >
< property name ="dataSource" >
< ref bean ="dataSource" />
</ property >
< property name ="mappingResources" >
< list >
< value > /com/ergal/hibernate/User.hbm.xml </ value >
</ list >
</ property >
< property name ="hibernateProperties" >
< props >
< prop key ="hibernate.dialect" > org.hibernate.dialect.MySQLDialect </ prop >
< prop key ="hibernate.show_sql" > true </ prop >
< prop key ="hibernate.current_session_context_class" > thread </ prop >
</ props >
</ property >
</ bean >

<!-- =================================================================== -->
<!-- HibernatePOJO -->
<!-- =================================================================== -->

< bean id ="userDao" class ="com.ergal.hibernate.UserDao" >
< property name ="sessionFactory" >
< ref bean ="sessionFactory" />
</ property >
</ bean >

<!-- =================================================================== -->
<!-- transactionManager -->
<!-- =================================================================== -->

< bean id ="transactionManager" class ="org.springframework.orm.hibernate3.HibernateTransactionManager" >
< property name ="sessionFactory" >
< ref bean ="sessionFactory" />
</ property >
</ bean >

<!-- =================================================================== -->
<!-- DaoProxy -->
<!-- =================================================================== -->

< bean id ="userDaoProxy" class ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" >
< property name ="transactionManager" >
< ref bean ="transactionManager" />
</ property >
< property name ="proxyInterfaces" >
< list >
< value > com.ergal.hibernate.IUserDao </ value >
</ list >
</ property >
< property name ="target" >
< ref bean ="userDao" />
</ property >
< property name ="transactionAttributes" >
< props >
< prop key ="insert" > PROPAGATION_REQUIRED </ prop >
</ props >
</ property >

</ bean >



</ beans >

這么一來在修改數據庫連接的部分就變的非常簡單 修改后也不用修改除sessionFactory的組裝外的其他代碼

二 proxool

這個可以通過對hibernateProperties的屬性配置來設置

beans-config.xml

< bean id ="mySessionFactory" class ="org.springframework.orm.hibernate.LocalSessionFactoryBean" >
< property name ="mappingResources" >
< list >
< value > com/meagle/bo/Order.hbm.xml </ value >
< value > com/meagle/bo/OrderLineItem.hbm.xml </ value >
</ list >
</ property >

< property name ="hibernateProperties" >
< props >
< prop key ="hibernate.dialect" > net.sf.hibernate.dialect.MySQLDialect </ prop >
< prop key ="hibernate.show_sql" > true </ prop >
< prop key ="hibernate.cglib.use_reflection_optimizer" > true </ prop >
< prop key ="hibernate.proxool.xml" > C:/....../WebContent/WEB-INF/proxool.xml </ prop >
< prop key ="hibernate.proxool.pool_alias" > spring </ prop >
</ props >
</ property >
</ bean >

然后單獨寫一個proxool.xml

<? xmlversion="1.0"encoding="UTF-8" ?>
<!-- theproxoolconfigurationcanbeembeddedwithinyourownapplication's.
Anythingoutsidethe"proxool"tagisignored.
-->

< proxool >
< alias > spring </ alias >
< driver-url > jdbc:mysql://localhost:3306/shtest </ driver-url >
< driver-class > com.mysql.jdbc.Driver </ driver-class >
< driver-properties >
< property name ="user" value ="root" />
< property name ="password" value ="password" />
</ driver-properties >
< minimum-connection-count > 2 </ minimum-connection-count >
< maximum-connection-count > 20 </ maximum-connection-count >
< maximum-connection-lifetime > 180000 </ maximum-connection-lifetime > <!-- 5hours -->
< house-keeping-test-sql > values(currentTimeStamp) </ house-keeping-test-sql >
< statistics > 1m,15m,1d </ statistics >
< statistics-log-level > INFO </ statistics-log-level >
< fatal-sql-exception > Connectionisclosed,SQLSTATE=08003,Erroropeningsocket.SQLSTATE=08S01,SQLSTATE=08S01 </ fatal-sql-exception >
< fatal-sql-exception-wrapper-class > org.logicalcobwebs.proxool.FatalRuntimeException </ fatal-sql-exception-wrapper-class >
< verbose > false </ verbose >
</ proxool >

Spring+Hibernate 配置和使用c3p0和proxool連接池


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久综合九色综合欧洲 | 污视频网站在线免费看 | 伊人伊人 | 三人弄娇妻高潮3p视频 | 伊人网站| 亚洲国产婷婷香蕉久久久久久99 | 99精品国产一区二区青青牛奶 | 国产高清无专砖区2021 | 久久久久久全国免费观看 | 热久久亚洲 | 天天夜天干天天爽 | 午夜影院免费 | 国产成人无码AA片免费看 | 色婷婷综合缴情综六月 | 亚洲欧美一区二区三区久本道 | 永久免费mv网站入口 | 成人一区二区丝袜美腿 | 午夜小视频免费 | 国产高清在线精品免费 | 久草视频免费看 | 亚洲精品久久久久中文字幕欢迎你 | 久久无码AV亚洲精品色午夜 | 亚洲成人黄色在线 | 免费看一级视频 | 国产精品视频一区二区三区不卡 | 久久国内精品自在自线400部o | 亚洲在成人网在线看 | 97碰碰在线视视频 | 日韩电影免费观 | 国产精一区二区 | 国产在线aaa片一区二区99 | 久久久国产精品视频 | 久久免费视频在线 | 国产麻豆传媒视频 | 成人午夜网址 | av播放在线 | 欧美成人26uuu欧美毛片 | 精品日韩欧美一区二区三区在线播放 | WWW国产亚洲精品久久久 | 午夜国产 | 亚洲欧美日韩一级特黄在线 |