(절대 유효) sqlserver 2000 링크 proxool 연결 풀, 드디어 spring 통합 struts, hibenate annotation (pool 데이터 풀, sqlserver 2000 데이터베이스) 을 설정 하 였 습 니 다.

11699 단어 springHibernatestruts
먼저 proxool. xml (proxool - 0.9.1. jar, proxool - cglib. jar 와 세 개의 sqlserver 패키지 가 필요 합 니 다)
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
  <proxool>
    <alias>pool</alias>
    <driver-url>jdbc:microsoft:sqlserver://localhost:1433;databaseName=tour</driver-url>
    <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
    <driver-properties>
      <property name="user" value="sa"/>
      <property name="password" value="sa"/>
    </driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<maximum-new-connections>20</maximum-new-connections>
<prototype-count>5</prototype-count>
<maximum-connection-count>100</maximum-connection-count>
 <check-valid-connection-sql>select * from t_user</check-valid-connection-sql
>
<minimum-connection-count>10</minimum-connection-count>
</proxool>
</something-else-entirely>

proxool 을 먼저 시작 해 야 하기 때문에 하나의 종 류 를 추가 해 야 합 니 다. proxool 을 웹. xml 에서 listener 로 정의 합 니 다.
package cn.wt.listener;   
  
import java.io.File;   
import java.util.Enumeration;   
import java.util.Properties;   
  
import javax.servlet.ServletContext;   
import javax.servlet.ServletContextEvent;   
import javax.servlet.ServletContextListener;   
  
import org.apache.commons.logging.Log;   
import org.apache.commons.logging.LogFactory;   
import org.logicalcobwebs.proxool.ProxoolException;   
import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;   
import org.logicalcobwebs.proxool.configuration.PropertyConfigurator;   
  
/**
* @author wangtao
*/  
  
public class ProxoolListener implements ServletContextListener   
{   
    private static final Log LOG = LogFactory.getLog(ProxoolListener.class);   
       
    private static final String XML_FILE_PROPERTY = "xmlFile";   
  
    private static final String PROPERTY_FILE_PROPERTY = "propertyFile";   
  
    private static final String AUTO_SHUTDOWN_PROPERTY = "autoShutdown";   
       
    @SuppressWarnings("unused")   
    private boolean autoShutdown = true;   
       
    public void contextDestroyed(ServletContextEvent arg0)   
     {   
         System.out.println("destroy database pool....");   
     }   
  
    public void contextInitialized(ServletContextEvent contextEvent)   
     {   
         ServletContext context = contextEvent.getServletContext(); //  servlet init   ServletConfig.getServletContext()   
         String appDir = contextEvent.getServletContext().getRealPath("/");   
         Properties properties = new Properties();   
  
         Enumeration names = context.getInitParameterNames();   
        while (names.hasMoreElements()) {   
             String name = (String) names.nextElement();   
             String value = context.getInitParameter(name);   
  
            if (name.equals(XML_FILE_PROPERTY)) {   
                try {   
                     File file = new File(value);   
                    if (file.isAbsolute()) {   
                         JAXPConfigurator.configure(value, false);   
                     } else {   
                         JAXPConfigurator.configure(appDir + File.separator + value, false);   
                     }   
                 } catch (ProxoolException e) {   
                     LOG.error("Problem configuring " + value, e);   
                 }   
             } else if (name.equals(PROPERTY_FILE_PROPERTY)) {   
                try {   
                     File file = new File(value);   
                    if (file.isAbsolute()) {   
                         PropertyConfigurator.configure(value);   
                     } else {   
                         PropertyConfigurator.configure(appDir + File.separator + value);   
                     }   
                 } catch (ProxoolException e) {   
                     LOG.error("Problem configuring " + value, e);   
                 }   
             } else if (name.equals(AUTO_SHUTDOWN_PROPERTY)) {   
                 autoShutdown = Boolean.valueOf(value).booleanValue();   
             } else if (name.startsWith("jdbc")) { //     PropertyConfigurator.PREFIX  jdbc,      0.9.1   , 0.9RC3          
                 properties.setProperty(name, value);   
             }   
         }   
  
        if (properties.size() > 0) {   
            try {   
                 PropertyConfigurator.configure(properties);   
             } catch (ProxoolException e) {   
                 LOG.error("Problem configuring using init properties", e);   
             }   
         }   
     }   
  
}  

그리고 웹. xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

<display-name>Struts Blank</display-name>
  
  <context-param>
   <param-name>xmlFile</param-name>
   <param-value>WEB-INF/classes/proxool.xml</param-value>
</context-param>
<listener>
   <listener-class>cn.wt.listener.ProxoolListener</listener-class>
</listener>

<context-param>
	<param-name>contextConfigLocation</param-name>
		<param-value>WEB-INF/classes/beans.xml</param-value>
	</context-param>
   <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
</web-app>

마지막 으로 beans. xml.
<?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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
           
           
  <context:annotation-config/>
	  <!--       Bean,         -->
	  <context:component-scan base-package="com"/>
 
  
 
 <bean id="dataSource"     class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName">     
    <value>org.logicalcobwebs.proxool.ProxoolDriver</value>     
        </property>     
        <property name="url">     
            <value>proxool.pool</value>     
        </property>     
    </bean>     
    <bean id="sessionFactory"     
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">     
        <property name="dataSource">     
            <ref bean="dataSource" />     
        </property>     
        <property name="hibernateProperties">     
            <props>     
                <prop key="hibernate.dialect">     
                   org.hibernate.dialect.SQLServerDialect   
                </prop>     
                <prop key="hibernate.connection.autocommit">true</prop>     
                <prop key="hibernate.show_sql">true</prop>     
                <prop key="hibernate.connection.release_mode">     
                     after_statement      
                </prop>     
            </props>     
        </property>     

    </bean>     
</beans>   

첫 번 째 설정 이 잘못 되 었 습 니 다. 지적 해 주 십시오.
또 1 가지, 인터넷 에서 찾 은 설, 본인 은 해 본 적 이 없다.
proxool: 이 연결 풀 에 대해 인터넷 에서 말 하 는 예 도 많 습 니 다. 성능 이 가장 좋 은 연결 풀 이 라 고 합 니 다. 갱 아버 지 는 인터넷 에서 말 하 는 것 과 spring 의 통합 은 잘못된 것 이 많 습 니 다. spring 을 통 해 직접 설정 하면 됩 니 다. 인터넷 에서 말 한 것 처럼 listener 를 servlet 로 바 꾸 고 spring 의 bean 을 통 해 직접 설정 하면 됩 니 다.이거 인터넷 에 도 많아 요.이 연결 탱크 에 대해 저 는 테스트 를 할 때 기본 적 인 상황 에서 자동 으로 다시 연결 되 지 않 는 다 는 것 을 알 게 되 었 습 니 다. 다음 설정 을 통 해:                                              xxxx. xml 에 설정 하기                                                                          pool     jdbc:mysql://192.168.1.4:3306/MIGRATE_TEST?characterEncoding=utf- 8&autoReconnect=true     com.mysql.jdbc.Driver                                          1     8     1     true     60000  my sql URL 뒤에 autoReconnect = true 를 추가 해 야 합 니 다. 주의해 야 할 것 은 ibatis 를 사용 할 때 로 그 는 warn: registered a statement as closed which wasn 't known to be open 을 알 립 니 다. 그 건 ibatis 에서
      package org.springframework.orm.ibatis;
 
 
 
 
 
 public class SqlMapClientTemplate extends JdbcAccessor implements SqlMapClientOperations {
 
 
 
 
 
 
 
 
 public T execute(SqlMapClientCallback action) throws DataAccessException {
         ..........          finally {             // Only close SqlMapSession if we know we've actually opened it             // at the present level.             if (ibatisCon == null) {                 session. close (); / / 이 부분 으로 인해 발생 하 는 지 ibatisCon 이 비어 있 지 않 을 때 session 은 영원히 닫 히 지 않 습 니 다.            }         }          }
 
 
 
 
 
 }
      빨간색 부분 을 if (ibatisCon! = null) 로 바 꾸 면 됩 니 다.
자, 쓸데없는 소리 하지 말고 더 자세 한 자료 가 필요 합 니 다. 소스 코드 를 다운로드 할 수 있 습 니 다. 도착 할 수 있 습 니 다.http://download.csdn.net/detail/qq435967718/4738630다운로드 하 다.
데이터베이스http://download.csdn.net/detail/qq435967718/4757430다운로드
. 사이트 가 tomcat 를 통 해 발 표 된 후 이 주 소 를 방문 할 수 있 습 니 다 (http://localhost:8080/항목 이름 / index 1) 또는 (http://localhost:8080/Tour_Struts9//index1) 잊 어 버 렸 어 요. 두 개 다 해 보 세 요. 그리고 네 비게 이 션 으로 '사용자 관리' 를 클릭 하고 '네트워크 관리자' 를 클릭 하면 데이터베이스 에 있 는 데 이 터 를 꺼 냅 니 다.

좋은 웹페이지 즐겨찾기