eclipse tomcat S2SH数据库连接池

        说明:下面操作基于Eclipse Galileo  和apache-tomcat-6.0.26.tar.gz

 

         配置环境分两种情况,第一种是将war包丢到tomcat的webapp中部署,第二种是Eclipse使用tomcat的虚拟目录来运行工程。

 

 

 

首先说第一种:将war包丢到tomcat的webapp中部署


      此情况又分两种,第一种是配置工程WebContent下META-INF中context.xml;第二种是配置tomcat中 /conf/Catalina/localhost下的[app_name].xml。

  (一)    先说第一种情况:配置工程WebContent下META-INF中context.xml

 

ApplicationContext.xml

Spring的ApplicationContext.xml有如下注册数据库连接的内容

java:comp/env/jdbc/mysql_ssh

其中“jdbc/mysql_ssh”即为连接名。

 

context.xml

然后配置WebContent下META-INF中context.xml,如果没有,则新建,请注意文件名是context.xml,而不是 content.xml。该文件内容如下:

 

    applicationContext.xml和context.xml中的数据库连接名要对应。然后可以将工程导成war放在tomcat webapp目录下部署了。

请记得在工程中放入mysql的jar包,此次测试中tomcat的lib目录下没有放置mysql的jar,放了也不报错。测试页面请见二.(三)。

 

如果启动的时候或测试页面报“Cannot create JDBC driver of class '' for connect URL 'null'”,请看context.xml文件名是否有误。

 

 

 

 

(二) 然后说明第一种情况下的第二个环境吧:配置tomcat中 /conf/Catalina/localhost下的[app_name].xml。

上述情况是配置WebContent下META-INF中context.xml,这次是将部署环境(工程运行时的目录)中的此文件剪切到tomcat 的conf/Catalina/localhost下,并将context.xml改成你的项目名,我的是ssh.xml。这样操作也可以配置好。测试页面请见二.(三)。

 

  也可以将context.xml中的Resource追加到 tomcat conf中的context.xml中。感觉和在META-INF中context.xml原理是一样的。

 

 

 

 

第二种情况就是开发环境中的设置了:

 

(一 )工程的配置文件

   web.xml

S2SH框架搭建完毕后,工程的web.xml有如下内容:

dataSource jdbc/mysql_ssh javax.sql.DataSource Container

 

 

ApplicationContext.xml

Spring的ApplicationContext.xml有如下注册数据库连接的内容

java:comp/env/jdbc/mysql_ssh

其中“jdbc/mysql_ssh”即为连接名。

 

 

(二) tomcat中的配置文件

 

因为Eclipse不像MyEclipse那样会把编译后的文件拷贝到tomcat的webapp目录,所以不要动心思去改tomcat conf目录中的文件。

将Eclipse和tomcat关联后,可在Eclipse的 package Explorer中看到 “Servers”这个project。展开可以看到类似“Tomcat v6.0 Server at localhost-config”的文件夹。

双击打开里面的server.xml 。在 和中 添加

                    maxActive="100" maxIdle="30" maxWait="10000" username="root"
            password="admin" driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://127.0.0.1:3306/ssh?autoReconnect=true" />
   
后结果如下:

这个配置大家都能看懂,就不说了。

请注意工程中有mysql的jar包。我测试的时候tomcat 的lib下没有放置mysql的jar包。

还是这个server.xml 文件。

请找到 ,并在其中添加   ,结果如下:

 

说明:docBase的值(ssh)会被Eclipse翻译成绝对路径并拷贝到tomcat所用的虚拟路径中。

 

 

 

(三) 测试页面

 

在WebContent中新建testdb.jsp 测试文件,内容如下:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.io.*" %> <%@ page import="java.util.*" %> <%@ page import="java.sql.*" %> <%@ page import="javax.sql.*" %> <%@ page import="javax.naming.*" %> 使用tomcat自带的数据库连接池 <% try{ Connection conn; Statement stmt; ResultSet rs; //从数据源中获得数据库连接 Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql_ssh"); conn = ds.getConnection(); //创建一个SQL声明 stmt = conn.createStatement(); //查询记录 rs = stmt.executeQuery("select ID,USERNAME ,PASSWORD from USER"); //输出查询结果 out.println("

"); while (rs.next()){ String col1 = rs.getString(1); String col2 = rs.getString(2); String col3 = rs.getString(3); //转换字符编码 //col1 = new String(col1.getBytes("ISO-8859-1"),"GB2312"); //col2 = new String(col2.getBytes("ISO-8859-1"),"GB2312"); //col3 = new String(col3.getBytes("ISO-8859-1"),"GB2312"); //打印显示的数据 out.println(""); } out.println("
"+col1+""+col2+""+col3+""+"777"+"
"); //关闭结果集、SQL声明和数据库连接 rs.close(); stmt.close(); conn.close(); }catch(Exception e){ out.println(e.getMessage()); e.printStackTrace(); } %>

 

通过 http://127.0.0.1:8080/ssh/testdb.jsp就可以看到结果了。

 

 

 

 

你可能感兴趣的:(DB,数据库)