Tomcat 연결 풀 설정 및 구현/JNDI
4474 단어 자바sqltomcatxmlSQL Server
연결 탱크 의 설정 은 인터넷 에 여러 가지 가 있 습 니 다.저도 몇 가지 테스트 를 했 는데 첫 번 째 연결 이 성 공 했 습 니 다.
먼저 Tomcat\conf 폴 더 에서 server.xml 파일 을 찾 고 이 부분 에 코드 를 추가 합 니 다.
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
다음 코드 추가
<Resource name="jdbc/exam"
auth="Container" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="30"
maxWait="5000"
username="root"
password="lzj"
url="jdbc:mysql://localhost/exam"
maxActive="100"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"/>
그리고 같은 폴 더 아래 context.xml 파일 을 찾 아
。server.xml 파일 에 추 가 된 부분 참조
<ResourceLink name="jdbc/exam" global="jdbc/exam" type="javax.sql.DataSource"/>
그리고 프로젝트 의 웹 xml 파일 에 추가 합 니 다.
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/exam</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
설정 이 완료 되 었 더 라 도 가장 중요 한 것 은 연못 류 를 연결 하 는 코드 입 니 다.
다음은 연결 탱크 의 코드 도 붙 여 놓 았 습 니 다.테스트 에 성 공 했 습 니 다.
import java.sql.*;
import javax.sql.*;
import java.io.*;
import javax.naming.*;
public class ConnectionPool
{
private static ConnectionPool instace;
private static DataSource ds;
//
public static DataSource createDataSource()
{
if (ds == null)
{
try
{
Context ct = new InitialContext();
if (ct == null)
System.out.println(" ");
Context envContext = (Context) ct.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("jdbc/exam"); //
}
catch (NamingException e)
{
e.printStackTrace();
}
}
return ds;
}
//
public static synchronized Connection getConnection() throws SQLException,NamingException{
Connection con=null;
try
{
//
con=(Connection)createDataSource().getConnection();
}
catch (Exception e)
{
e.printStackTrace();
System.out.print("Get Connection Error");
}
return con;
}
//
public static synchronized void freeConnection(Connection con){
try
{
con.close();
}
catch (SQLException e)
{
e.printStackTrace();
System.out.println("Close Connection Error");
}
}
}
사용 할 때 이렇게 사용 하면 돼 요.
사용 할 가방 javax.naming.*먼저 가 져 오기;이상 사용 try 를 던 져 야 하기 때문에,
try
{
con=cp.getConnection();
}
catch (NamingException e)
{
e.printStackTrace();
}
con.setAutoCommit(false);
// SQL , pstmt.executeUpdate();
con.commit();
이것 이 바로 첫 번 째 방법 입 니 다.테스트 에 성 공 했 습 니 다.다만 이러한 설정 은 공유 연결 이 고 어느 웹 앱 이 든 연결 할 수 있 습 니 다.또 하 나 는 context.xml 에 직접 설정 을 추가 하 는 것 입 니 다.아직 테스트 에 성공 하지 못 했 습 니 다.어디 가 잘못 되 었 는 지 모 르 겠 습 니 다.
또 하 나 는 직접 클래스 를 사용 하여 연결 을 만 들 고 사용 할 때 꺼 내 는 것 이다.여 기 는 나 도 코드 를 붙 이지 않 겠 다.하하,사람들 이 나 보다 더 잘 말한다.주소.http://jalant.iteye.com/blog/378436
http://www.iteye.com/topic/245596
우리 WEB 프로젝트 의 META-INF 폴 더 아래 context.xml 를 만 들 고 설정 코드 를 붙 여 넣 습 니 다.다음은 기본적으로 위 와 같 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.