(절대 유효) sqlserver 2000 링크 proxool 연결 풀, 드디어 spring 통합 struts, hibenate annotation (pool 데이터 풀, sqlserver 2000 데이터베이스) 을 설정 하 였 습 니 다.
<?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 을 통 해 직접 설정 하면 됩 니 다.이거 인터넷 에 도 많아 요.이 연결 탱크 에 대해 저 는 테스트 를 할 때 기본 적 인 상황 에서 자동 으로 다시 연결 되 지 않 는 다 는 것 을 알 게 되 었 습 니 다. 다음 설정 을 통 해:
package org.springframework.orm.ibatis;
public class SqlMapClientTemplate extends JdbcAccessor implements SqlMapClientOperations {
public
.......... 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) 잊 어 버 렸 어 요. 두 개 다 해 보 세 요. 그리고 네 비게 이 션 으로 '사용자 관리' 를 클릭 하고 '네트워크 관리자' 를 클릭 하면 데이터베이스 에 있 는 데 이 터 를 꺼 냅 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.