C3P0配置备忘
web.xml配置文件需要添加请求分发
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext*.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Spring mappings -->
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
applicationContext配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<description>Spring公共配置文件</description>
<!-- mes 的 -->
<bean id="dataSource" destroy-method="close">
<property name="driverClass" value=""/>
<property name="jdbcUrl" value=""/>
<property name="user" value=""/>
<property name="password" value=""/>
<property name="maxPoolSize" value="10"></property>
<property name="maxIdleTime" value="1800"></property>
<property name="minPoolSize" value="1"></property>
<property name="initialPoolSize" value="1"></property>
</bean>
<bean id="dataSourcePdm" destroy-method="close">
<property name="driverClass" value=""/>
<property name="jdbcUrl" value=""/>
<property name="user" value=""/>
<property name="password" value=""/>
<property name="maxPoolSize" value="10"></property>
<property name="maxIdleTime" value="1800"></property>
<property name="minPoolSize" value="1"></property>
<property name="initialPoolSize" value="1"></property>
</bean>
<bean id="dataSourceProxy"
value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean value="2" />
</bean>
<context:component-scan base-package="com.ccc"/>
<bean />
<bean id="transactionManager"
p:dataSource-ref="dataSourceProxy"/>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.ccc..*.*(..))"/>
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
</aop:config>
<bean id="transactionManagerPdm"
p:dataSource-ref="dataSourcePdm"/>
<tx:advice id="txAdvicePdm" transaction-manager="transactionManagerPdm">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="allManagerMethodPdm" expression="execution(* com.ccc.pdm..*.*(..))"/>
<aop:advisor pointcut-ref="allManagerMethodPdm" advice-ref="txAdvicePdm"/>
</aop:config>
<bean id="sqlMapClient" p:dataSource-ref="dataSourceProxy">
<property name="configLocation">
<value>classpath:SqlMapConfig.xml</value>
</property>
</bean>
<bean id="sqlMapClientTemplate" />
</property>
</bean>
<bean id="doubleSubmitInterceptor" value=".html" />
<property name="viewURL" value=".html" />
</bean>
<bean p:order="0">
<property name="interceptors">
<list>
<ref bean="doubleSubmitInterceptor"/>
</list>
</property>
</bean>
-->
<bean id="jdbcTemplate" name="code">import java.sql.SQLException;import java.util.List;import java.util.regex.PatternSyntaxException;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.support.rowset.SqlRowSet;import org.springframework.jdbc.support.rowset.SqlRowSetMetaData;import org.springframework.stereotype.Service;import com.ccc.db.JdbcTemplateManager;import com.ccc.db.page.OraclePageOptimize;import com.ccc.tag.page.PagerTag;import com.ccc.util.BeanUtil;@Service("JdbcTemplateManager")public class JdbcTemplateManagerImpl implements JdbcTemplateManager {private static Log LOG = LogFactory.getLog(JdbcTemplateManagerImpl.class);@Autowiredprivate JdbcTemplate jdbcTemplate;public String[][] executeQuery(String sql) throws SQLException {String sTmp;String[][] sArrRtn = null;int iCol = 0, i = 0, j = 0;boolean bFlg = false;SqlRowSet srs = null;SqlRowSetMetaData rsmd = null;srs = jdbcTemplate.queryForRowSet(sql);rsmd = srs.getMetaData();iCol = rsmd.getColumnCount();bFlg = srs.last();if (bFlg) {i = srs.getRow();}srs.beforeFirst();sArrRtn = new String[i + 1][iCol];for (i = 0; i < iCol; i++) {sTmp = rsmd.getColumnName(i + 1).trim();sArrRtn[0][i] = sTmp;}while (srs.next()) {j = j + 1;for (i = 0; i < iCol; i++) {Object o = srs.getObject(i + 1);sTmp = String.valueOf(o == null ? "" : o);sTmp = sTmp.equalsIgnoreCase("null") ? "" : sTmp;sArrRtn[j][i] = sTmp;}}return sArrRtn;}public String[][] executeQuery(String sql, Object[] args) throws SQLException {String sTmp;String[][] sArrRtn = null;int iCol = 0, i = 0, j = 0;boolean bFlg = false;SqlRowSet srs = null;SqlRowSetMetaData rsmd = null;srs = jdbcTemplate.queryForRowSet(sql, args);rsmd = srs.getMetaData();iCol = rsmd.getColumnCount();bFlg = srs.last();if (bFlg) {i = srs.getRow();}srs.beforeFirst();sArrRtn = new String[i + 1][iCol];for (i = 0; i < iCol; i++) {sTmp = rsmd.getColumnName(i + 1).trim();sArrRtn[0][i] = sTmp;}while (srs.next()) {j = j + 1;for (i = 0; i < iCol; i++) {Object o = srs.getObject(i + 1);sTmp = String.valueOf(o == null ? "" : o);sTmp = sTmp.equalsIgnoreCase("null") ? "" : sTmp;sArrRtn[j][i] = sTmp;}}return sArrRtn;}public List<?> queryForList(String sql, Object object) throws Exception {SqlRowSet srs = null;// srs = jdbcTemplate.queryForRowSet(sql);srs = (SqlRowSet) jdbcTemplate.query(sql, new SqlRowSetOracleResultSetExtractor());List<?> list = BeanUtil.bindList(srs, BeanUtil.getClassName(object));return list;}public List<?> queryForList(String sql, Object[] args, Object object) throws Exception {SqlRowSet srs = null;// srs = jdbcTemplate.queryForRowSet(sql, args);srs = (SqlRowSet) jdbcTemplate.query(sql, args, new SqlRowSetOracleResultSetExtractor());List<?> list = BeanUtil.bindList(srs, BeanUtil.getClassName(object));return list;}public Object queryForObject(String sql, Object object) throws Exception {SqlRowSet srs = null;// srs = jdbcTemplate.queryForRowSet(sql);srs = (SqlRowSet) jdbcTemplate.query(sql, new SqlRowSetOracleResultSetExtractor());Object obj = BeanUtil.bindObject(srs, object);return obj;}public Object queryForObject(String sql, Object[] args, Object object) throws Exception {SqlRowSet srs = null;// srs = jdbcTemplate.queryForRowSet(sql, args);srs = (SqlRowSet) jdbcTemplate.query(sql, args, new SqlRowSetOracleResultSetExtractor());Object obj = BeanUtil.bindObject(srs, object);return obj;}public int queryForInt(String sql) throws SQLException {int a = jdbcTemplate.queryForInt(sql);return a;}public int queryForInt(String sql, Object[] args) throws SQLException {int a = jdbcTemplate.queryForInt(sql, args);return a;}public long queryForLong(String sql) throws SQLException {long a = jdbcTemplate.queryForLong(sql);return a;}public long queryForLong(String sql, Object[] args) throws SQLException {long a = jdbcTemplate.queryForLong(sql, args);return a;}public String queryForString(String sql) throws SQLException {String str = (String) jdbcTemplate.queryForObject(sql, String.class);return str;}public String queryForString(String sql, Object[] args) throws SQLException {String str = (String) jdbcTemplate.queryForObject(sql, args, String.class);return str;}public List<?> queryForListPerPage(String sql, String sqlCount, PagerTag page, Object object) throws Exception {List<?> list = null;int recordCount = queryForInt(sqlCount);page.setRecordCount(recordCount);if (page.getRecordCount() <= 0) {} else {String osql = "";OraclePageOptimize po = new OraclePageOptimize();if (po != null) {osql = po.getOptimizeSQLString(page, sql);} else {osql = sql;}SqlRowSet srs = null;// srs = jdbcTemplate.queryForRowSet(osql);srs = (SqlRowSet) jdbcTemplate.query(osql, new SqlRowSetOracleResultSetExtractor());list = BeanUtil.bindList(srs, BeanUtil.getClassName(object));}return list;}public List<?> queryForListPerPage(String sql, String sqlCount, Object[] args, PagerTag page, Object object)throws Exception {List<?> list = null;int recordCount = queryForInt(sqlCount, args);page.setRecordCount(recordCount);if (page.getRecordCount() <= 0) {} else {String osql = "";OraclePageOptimize po = new OraclePageOptimize();if (po != null) {osql = po.getOptimizeSQLString(page, sql);} else {osql = sql;}SqlRowSet srs = null;//srs = jdbcTemplate.queryForRowSet(osql, args);srs = (SqlRowSet) jdbcTemplate.query(osql, args, new SqlRowSetOracleResultSetExtractor());list = BeanUtil.bindList(srs, BeanUtil.getClassName(object));}return list;}public long getSequencesNextValue(String sequencesName) throws SQLException {long sequencesValue = -1;String sql = "select " + sequencesName + ".NEXTVAL from dual";sequencesValue = jdbcTemplate.queryForLong(sql);return sequencesValue;}public void executeUpdate(String sql) throws SQLException {jdbcTemplate.update(sql);}public void executeUpdate(String sql, Object[] args) throws SQLException {jdbcTemplate.update(sql, args);}public void batchUpdate(String[] sql) throws SQLException {jdbcTemplate.batchUpdate(sql);}public void batchUpdate(String sql, Object[][] args) throws SQLException {BatchPreparedStatementSetter setter = new BatchPreparedStatementSetter();setter.setParam(args);jdbcTemplate.batchUpdate(sql, setter);}public void toSqlString(String sql, Object[] args) throws SQLException {String str = sql;try {if (args != null) {for (int i = 0; i < args.length; i++) {try {str = str.replaceFirst("\\?", "'" + args[i] + "'");} catch (PatternSyntaxException e) {e.printStackTrace();}}} else {LOG.error("DB.toSqlString:pram is null");}} catch (Exception e) {LOG.error(e);}LOG.info(str);}}