设为首页 收藏本站
查看: 711|回复: 0

[经验分享] Tomcat 6.0+ SQL Server 2005连接池的配置

[复制链接]

尚未签到

发表于 2016-11-4 03:37:08 | 显示全部楼层 |阅读模式
Tomcat连接池连接SQLServer2005Express
  在Tomcat作为服务器调试JSP时,可以通过配置数据库连接池,实现简单配置。
  下面是配置连接SQL Server 2005 Express的过程,JDBC为Microsoft的Microsoft SQL Server 2005 JDBC Driver1.2。
  首先要保证能够正常调试JSP,也就是安装JSDK,和Tomcat,我选择的较旧的版本,j2sdk1.4.2_06和Tomcat 5.0.16。
  安装完成后配置ClassPath,(安装目录为:D:/j2sdk1.4.2_06和D:/Program Files/Apache Software Foundation/Tomcat 5.0)
  1、配置系统变量JAVA_HOME:D:/j2sdk1.4.2_06
  2、系统变量CATALINA_HOME:/Program Files/Apache Software Foundation/Tomcat 5.0
  CATALINA_BASE:D:/Program Files/Apache Software Foundation/Tomcat 5.0
  3、配置系统变量classpath:
  .;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;D:/Program Files/Apache Software Foundation/Tomcat 5.0/common/lib/servlet-api.jar
  4、在系统变量Path最后添加:%JAVA_HOME%/bin
  5、将JDBC1.2安装目录下的sqljdbc.jar,复制到D:/Program Files/Apache Software Foundation/Tomcat 5.0/common/lib,将D:/j2sdk1.4.2_06/lib/tools.jar也复制到该目录。
  以上配置完成后重新启动计算机,使设置生效,然后启动Tomcat,打开http://localhost:8080出现,Tomcat的欢迎画面说明成功。
  下面是数据库的配置,SQL Server 2005 Express在安装完成后是不允许通过TCP/IP连接的,因此需要配置:
  进入SQL Server 2005 Express配置工具--SQL Server 外围应用配置器,在服务和连接的外围应用配置器中,配置使用TCP/IP连接。如下图:
http://feiliboos.iyunv.com/blog/UploadFiles/2008-3/271256100188.png
  配置完成后,重新启动SQLServer服务
  可以配置SQL SERVER安全性,允许设定的用户连接,而不是使用sa进行连接。
  另外值得注意的是,需要设置SQL SERVER使用SQL SERVER的身份验证模式:
  在SQL SERVER Management Studio对象资源管理器中,右击服务器实例名称,在属性窗口中设置使用SQL SERVER和Windows 身份验证模式:
http://feiliboos.iyunv.com/blog/UploadFiles/2008-3/27135626406.png
  此时,便可以使用你创建的用户来访问SQL SERVER了,这里我创建了一个数据库Teacherinfo,并创建用户teacher,密码123456,来作为数据库OWER,通过网络访问
  下面开始Tomcat 的配置:
  1、进入http://localhost:8080/,打开Tomcat Administrator,登入,选择Data Sources,然后选择创建新的数据源,名称为MSSQL,需要在程序中使用,可以随便取,最好有标示作用:
http://feiliboos.iyunv.com/blog/UploadFiles/2008-3/271313603486.png
  配置说明:
  JNDI Name:注册到JNDI树上的名字(可以随便写)
Data Source URL:连接数据库的URL
JDBC Driver Class:Jbdc数据库的驱动名称
User Name:访问数据库的用户
Password:访问数据库的密码
Max. Active Connections:最大活跃连接数,指同时可以有多少个连接,设置为0没有限制
Max. Idle Connections:最大空闲连接数,表示没有数据库连接时,连接池也必须保持最大空闲连接数,设置为0没有限制
Max. Wait for Connection:连接建立等待时间,单位为毫秒,设置为-1无限制
Validation Query::此参数用来查询池中的空闲连接(可以不配置)
  注意:在SQL SERVER 2005中连接项与SQL SERVER 2000不同:
Data Source URL: jdbc:sqlserver://localhost:1433;DatebaseName=teacherinfo
JDBC Driver Class: com.microsoft.sqlserver.jdbc.SQLServerDriver

其他选项根据需要填写,用户名和密码不要填写错了。
填写完成后,单击SAVE保存,还要单击:Commit Changes按钮提交修改,否则将不会生效

完成后,打开Tomcat的server.xml文件,发现已经在 <GlobalNamingResources>和</GlobalNamingResources>之间添加了如下代码:(所以也可以自己直接添加)


<Resource type="javax.sql.DataSource" name="MSSQL"/>
<ResourceParams name="MSSQL">
<parameter>
<name>url</name>
<value>jdbc:sqlserver://localhost:1433;DatebaseName=teacherinfo</value>
</parameter>
<parameter>
<name>password</name>
<value>123456</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>teacher</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
</ResourceParams>
  
  2、配置完成了,下面就是如何应用到程序中去了,假设有一个WEB应用程序,mclass可以通过http://localhost:8080/mclass 的形式访问,那么在:D:/Program Files/Apache Software Foundation/Tomcat 5.0/conf/Catalina/localhost目录中应该有一个mclass.xml文件,内容至少应该包含如下:
<Context path="/mclass" displayName="Welcome to Tomcat" docBase="F:/mclass"></Context>
  现在在<Context></Context>之间添加上数据库连接的内容,否则该程序将无法使用连接池,添加后如下(内容是从server.xml中复制过早来的):
<Context path="/mclass" displayName="Welcome to Tomcat" docBase="F:/eclipse/workspace/mclass">
<Resource type="javax.sql.DataSource" name="MSSQL"/>
<ResourceParams name="MSSQL">
<parameter>
<name>url</name>
<value>jdbc:sqlserver://localhost:1433;DatebaseName=teacherinfo</value>
</parameter>
<parameter>
<name>password</name>
<value>123456</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>teacher</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
</ResourceParams>
</Context>
  
  3、现在当然还不可以,需要配置程序目录中的web.xml,本程序在F:/mclass
  打开F:/mclass/WEB-INF中的web.xml,添加如下代码,到<web-app></web-app>之间
<resource-ref>
  <description>sqlserverDB Connection</description>
  <res-ref-name>MSSQL</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>
  description是描述,自己定义
  res-ref-name是连接的名称,必须与在Tomcat中连接池的名称一致,此处是MSSQL
  res-type当然是javax.sql.DataSource了
  res-auth是程序中使用的
  至此,配置完全完成,下面就是测试了,首先重新启动Tomcat,以使配置生效,然后在F:/mlass中创建一个文件如test.jsp,内容可以参考如下代码:
  <%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
<html>
<head>
<title>test</title>
</head>
<body>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData md = null;
try
{
Context initCtx = new InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/MSSQL");
if(ds!=null)
{
out.println("已经获得DataSource<br>"); //显示获取的DataSource
out.println(ds.toString());
conn = ds.getConnection();
out.println("conn=" + conn + "<br>");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from teacher"); //获取teacher表中的数据
md = rs.getMetaData();
out.println("<table border=1>");
out.println("<tr align='center'>");
  //获取字段名称,作为表格第一行
for(int i=0; i<md.getColumnCount();i++)
out.println("<td>" + md.getColumnName(i+1) + "</td>");
  out.println("</tr>");
  //显示获取的表格数据
while(rs.next())
{
out.println("<tr>");
for(int j=0;j<md.getColumnCount();j++)
out.println("<td>" + rs.getString(j+1) + "&nbsp;</td>");
out.println("</tr>");
}
out.println("</table>");
  //关闭连接,此处关闭连接,只是将其又放回到连接池中,还可以再次使用
conn.close();
}
}
catch(Exception e)
{
out.println(e.toString());
System.out.println(e.toString());
}

%>
  <</body>
</html>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-295304-1-1.html 上篇帖子: SQL Server 2008 R2 性能计数器详细列表(二) 下篇帖子: Hibernate与MS SQL Server 2000的使用细节
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表