tomcat 7设备数据库连接池,应用SQL Server2005实现
添加时间:2013-6-28 点击量:
昨 天看了一些网上的tomcat数据库连接池设备的器材,然则一向没配好,首要原因是网上的文章几乎没有针对tomcat 7进行设备的,并且针对SQL SERVER的也不久不多,今天上午看了官方的文档,花了一上午时候终于设备好了数据库连接池,这里发给大师看看,若是有什么疑问就留言吧。
起首我们须要向项目中导入tomcat-dbcp.jar 、servlet-ap.jar和sql server的驱动sqljdbc4.jar 包到 web-inf 文件夹下的lib目次 。
然后增长context.xml
这
里有两种办法,第一种是在tomcat法度目次下面的conf/context.xml里面批改,这里批改之后所有的法度都将覆盖数据库连接池,然则
这种办法不敷灵活。这里我们选择第二种办法 在项目标Web-content/meta-inf
目次下创建一个context.xml文件,在里面添加如下内容:
<Context path=/SYSDEMO docBase=SYSDEMO
reloadable=true crossContext=true>
<Resource name=jdbc/SYSDEMO auth=Container type=javax.sql.DataSource
maxActive=100 maxIdle=30 maxWait=10000
username=lenovo password=lenovo driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://202.115.90.241:1433;DatabaseName=SYSDEMO/>
</Context>
这里须要批改的是 将所有的SYSDEMO改为你本身的应用的数据库的名称
将driverClassName改为你所应用数据库的驱动,这里是SQL SERVER的驱动。
将url改为jdbc链接该数据库的地址,这里是SQL SERVER的地址,
将username 、password改为你本身数据库用户名和暗码
maxActive=100 maxIdle=30 maxWait=10000
可以将这三个参数进行批改,
第一个是最大活动的连接数
第二个是大未连接数
第三个是最长的守候时候,单位是毫秒
然后再批改项目标webContent/web-inf/web.xml文件
添加如下内容
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/SYSDEMO</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
这里必必要改的是 <res-ref-name>jdbc/SYSDEMO</res-ref-name>
改为 jdbc/你本身的数据库
好了然后就可以应用了。
如下是我测试的servlet文件
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
@WebServlet(/TestPool)
public class TestPool extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try{
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup(java:/comp/env);
DataSource ds = (DataSource)envContext.lookup(jdbc/SYSDEMO);
Connection conn = ds.getConnection();
System.out.println(成功了。。。。。。。。。。);
}catch(Exception e){
System.out.println(失足了。。。。。。。。。。。。。。。。。。);
e.printStackTrace();
}
}
}
将 DataSource ds = (DataSource)envContext.lookup(jdbc/SYSDEMO);
“jdbc/SYSDEMO” 的sysdemo改为你前面应用的数据库的名称即可。
好了。大功成功。
文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》
昨 天看了一些网上的tomcat数据库连接池设备的器材,然则一向没配好,首要原因是网上的文章几乎没有针对tomcat 7进行设备的,并且针对SQL SERVER的也不久不多,今天上午看了官方的文档,花了一上午时候终于设备好了数据库连接池,这里发给大师看看,若是有什么疑问就留言吧。
起首我们须要向项目中导入tomcat-dbcp.jar 、servlet-ap.jar和sql server的驱动sqljdbc4.jar 包到 web-inf 文件夹下的lib目次 。
然后增长context.xml
这
里有两种办法,第一种是在tomcat法度目次下面的conf/context.xml里面批改,这里批改之后所有的法度都将覆盖数据库连接池,然则
这种办法不敷灵活。这里我们选择第二种办法 在项目标Web-content/meta-inf
目次下创建一个context.xml文件,在里面添加如下内容:
<Context path=/SYSDEMO docBase=SYSDEMO
reloadable=true crossContext=true>
<Resource name=jdbc/SYSDEMO auth=Container type=javax.sql.DataSource
maxActive=100 maxIdle=30 maxWait=10000
username=lenovo password=lenovo driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://202.115.90.241:1433;DatabaseName=SYSDEMO/>
</Context>
这里须要批改的是 将所有的SYSDEMO改为你本身的应用的数据库的名称
将driverClassName改为你所应用数据库的驱动,这里是SQL SERVER的驱动。
将url改为jdbc链接该数据库的地址,这里是SQL SERVER的地址,
将username 、password改为你本身数据库用户名和暗码
maxActive=100 maxIdle=30 maxWait=10000
可以将这三个参数进行批改,
第一个是最大活动的连接数
第二个是大未连接数
第三个是最长的守候时候,单位是毫秒
然后再批改项目标webContent/web-inf/web.xml文件
添加如下内容
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/SYSDEMO</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
这里必必要改的是 <res-ref-name>jdbc/SYSDEMO</res-ref-name>
改为 jdbc/你本身的数据库
好了然后就可以应用了。
如下是我测试的servlet文件
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
@WebServlet(/TestPool)
public class TestPool extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try{
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup(java:/comp/env);
DataSource ds = (DataSource)envContext.lookup(jdbc/SYSDEMO);
Connection conn = ds.getConnection();
System.out.println(成功了。。。。。。。。。。);
}catch(Exception e){
System.out.println(失足了。。。。。。。。。。。。。。。。。。);
e.printStackTrace();
}
}
}
将 DataSource ds = (DataSource)envContext.lookup(jdbc/SYSDEMO);
“jdbc/SYSDEMO” 的sysdemo改为你前面应用的数据库的名称即可。
好了。大功成功。
文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》
起首我们须要向项目中导入tomcat-dbcp.jar 、servlet-ap.jar和sql server的驱动sqljdbc4.jar 包到 web-inf 文件夹下的lib目次 。
然后增长context.xml
这
里有两种办法,第一种是在tomcat法度目次下面的conf/context.xml里面批改,这里批改之后所有的法度都将覆盖数据库连接池,然则
这种办法不敷灵活。这里我们选择第二种办法 在项目标Web-content/meta-inf
目次下创建一个context.xml文件,在里面添加如下内容:
<Context path=/SYSDEMO docBase=SYSDEMO
reloadable=true crossContext=true>
<Resource name=jdbc/SYSDEMO auth=Container type=javax.sql.DataSource
maxActive=100 maxIdle=30 maxWait=10000
username=lenovo password=lenovo driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://202.115.90.241:1433;DatabaseName=SYSDEMO/>
</Context>
这里须要批改的是 将所有的SYSDEMO改为你本身的应用的数据库的名称
将driverClassName改为你所应用数据库的驱动,这里是SQL SERVER的驱动。
将url改为jdbc链接该数据库的地址,这里是SQL SERVER的地址,
将username 、password改为你本身数据库用户名和暗码
maxActive=100 maxIdle=30 maxWait=10000
可以将这三个参数进行批改,
第一个是最大活动的连接数
第二个是大未连接数
第三个是最长的守候时候,单位是毫秒
然后再批改项目标webContent/web-inf/web.xml文件
添加如下内容
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/SYSDEMO</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
这里必必要改的是 <res-ref-name>jdbc/SYSDEMO</res-ref-name>
改为 jdbc/你本身的数据库
好了然后就可以应用了。
如下是我测试的servlet文件
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
@WebServlet(/TestPool)
public class TestPool extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try{
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup(java:/comp/env);
DataSource ds = (DataSource)envContext.lookup(jdbc/SYSDEMO);
Connection conn = ds.getConnection();
System.out.println(成功了。。。。。。。。。。);
}catch(Exception e){
System.out.println(失足了。。。。。。。。。。。。。。。。。。);
e.printStackTrace();
}
}
}
将 DataSource ds = (DataSource)envContext.lookup(jdbc/SYSDEMO);
“jdbc/SYSDEMO” 的sysdemo改为你前面应用的数据库的名称即可。
好了。大功成功。