driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/zzp username=root password=admin
(2).在Spring的配置文件中引入参数配置文件,代码以下: java
<!-- 配置spring资源文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>/WEB-INF/config/db-config.properties</value> </list> </property> </bean>
(3).配置数据源(这里有三种方式,jdbc、dbcp、c3p0) mysql
A.JDBC的配置方式,该方式区别与其余两种方式在于这种方式使用的是JDBC链接数据库,并无使用链接池,因此效率和性能方面不及其余两种,该种方式的配置方法:<!-- 数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${driverClass}"> </property> <property name="url" value="${url}"> </property> <property name="username" value="${username}"></property> <property name="password" value="${password}"></property> </bean>
B.使用dbcp的配置(参考文章): web
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="referredDriver" /> <property name="url" value="referredDBURL" /> <property name="username" value="DBLoginUser" /> <property name="password" value="DBLoginUserPassword" /> <property name="initialSize" value="5" /> <property name="maxIdle" value="30" /> <property name="minIdle" value="5" /> <property name="maxActive" value="15" /> <property name="removeAbandoned" value="true" /> <!-- 自动回收超时时间(以秒数为单位) --> <property name="removeAbandonedTimeout" value="300" /> <!--超时等待时间以毫秒为单位 --> <property name="maxWait" value="3000" /> <property name="defaultAutoCommit" value="false" /> <property name="validationQuery"> <value>SELECT 1</value> </property> <property name="testOnBorrow"> <value>true</value> </property> <property name="testOnReturn"> <value>false</value> </property> </bean>
C.使用C3P0方式配置(参考文章) spring
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 用户名--> <property name="user" value="${username}"/> <!-- 用户密码--> <property name="password" value="${password}"/> <property name="driverClass" value="${driver_class}"/> <property name="jdbcUrl" value="${url}"/> <!--链接池中保留的最大链接数。默认值: 15 --> <property name="maxPoolSize" value="20"/> <!-- 链接池中保留的最小链接数,默认为:3--> <property name="minPoolSize" value="2"/> <!-- 初始化链接池中的链接数,取值应在minPoolSize与maxPoolSize之间,默认为3--> <property name="initialPoolSize" value="2"/> <!--最大空闲时间,60秒内未使用则链接被丢弃。若为0则永不丢弃。默认值: 0 --> <property name="maxIdleTime">60</property> <!-- 当链接池链接耗尽时,客户端调用getConnection()后等待获取新链接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒。默认: 0 --> <property name="checkoutTimeout" value="3000"/> <!--当链接池中的链接耗尽的时候c3p0一次同时获取的链接数。默认值: 3 --> <property name="acquireIncrement" value="2"/> <!--定义在从数据库获取新链接失败后重复尝试的次数。默认值: 30 ;小于等于0表示无限次--> <property name="acquireRetryAttempts" value="0"/> <!--从新尝试的时间间隔,默认为:1000毫秒--> <property name="acquireRetryDelay" value="1000" /> <!--关闭链接时,是否提交未提交的事务,默认为false,即关闭链接,回滚未提交的事务 --> <property name="autoCommitOnClose">false</property> <!--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。若是定义了这个参数那么属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操做,它将只供c3p0测试使用。默认值: null --> <property name="automaticTestTable">Test</property> <!--若是为false,则获取链接失败将会引发全部等待链接池来获取链接的线程抛出异常,可是数据源仍有效保留,并在下次调用getConnection()的时候继续尝试获取链接。若是设为true,那么在尝试获取链接失败后该数据源将申明已断开并永久关闭。默认: false--> <property name="breakAfterAcquireFailure">false</property> <!--每60秒检查全部链接池中的空闲链接。默认值: 0,不检查 --> <property name="idleConnectionTestPeriod">60</property> <!--c3p0全局的PreparedStatements缓存的大小。若是maxStatements与maxStatementsPerConnection均为0,则缓存不生效,只要有一个不为0,则语句的缓存就能生效。若是默认值: 0--> <property name="maxStatements">100</property> <!--maxStatementsPerConnection定义了链接池内单个链接所拥有的最大缓存statements数。默认值: 0 --> <property name="maxStatementsPerConnection"></property> </bean>
在Web服务器中配置数据源
1.以Tomcat为例配置数据源须要将conf/context.xml中添加以下代码: sql
<Resource name="jndi/myDataSource" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/zwkj" username="root" password="root123!" maxActive="20" maxIdle="10" maxWait="10000"/>
2.在客户端应用程序中经过JNDI的方式获取数据源,以Spring为例,配置以下: 数据库
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:comp/env/jndi/myDataSource</value> </property> </bean>
出以上方式外还能够使用Spring的jee标签配置 apache
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jndi/myDataSource" />
注意:上面两种方式若是配置成后不能正常获取数据源,可在web.xml文件中添加以下代码: 缓存
<resource-ref> <description>JNDI DataSource</description> <res-ref-name>jndi/myDataSource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
本人在tomcat8下并未在web.xml文件中添加上述代码,能够测试成功,早起在Tomcat6下测试好像不加会报错。 tomcat
》》》》》》》》》》》》》》》》转载请注明出处《《《《《《《《《《《《《《《《
服务器