注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 IB客座主编(四)美国西蒙公..
 帮助

Tomcat-5.5.20下配置MySQL-5.0.27的数据库连接池(二)


2006-11-23 21:13:46
Tomcat-5.5.20下配置MySQL-5.0.27的数据库连接池(二)
 
 
作者:雷智民
日期:20061123星期四
天气:小雨寒冷
地点:郑州市西韩寨
耗时:3.5小时
 
五、现在还没有配置好连接池,需要一个实际的Web应用例子来测试
1、  在数据zfvims上建立表bookssql如下
 
CREATE TABLE `books` (
  `id` varchar(8) NOT NULL,
  `name` varchar(24) default NULL,
  `title` varchar(96) default NULL,
  `price` float default NULL,
  `yr` int(11) default NULL,
  `description` varchar(30) default NULL,
  `saleAmount` int(11) default NULL,
  PRIMARY KEY  (`id`))
并插入数据:
insert into `books` values ('201','王芳','Java编程指南',33.75,1999,'让读者轻轻松松掌握Java语言',1000),('202','张丙','Weblogic技术参考',45.99,2002,'真的不错耶',2000),('203','孙艳','Oracle数据库教程',40,2003,'关于Oracle的最畅销的技术书',2000),('204','大卫','OakJava: 语言的革命',20.75,1998,'很值得一看',2000),('205','阿明','Apache从入门到精通',50.75,2002,'权威的Apache技术资料',2000),('206','洪军','Java与数据算法 ',54.75,2002,'权威的Java技术资料',2000);
 
2、  建立一个最简单的web应用,就包含两个文件:web.xmltestds.jsp,打成war包,内容分别如下:
web.xml
---------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
 
    <welcome-file-list>
        <welcome-file>test.jsp</welcome-file>
    </welcome-file-list>
</web-app>
---------------------------------------------------------------------------------------------------
testds.jsp
---------------------------------------------------------------------------------------------------
<%--
  Created by IntelliJ IDEA.
  FileName: FileName.jap 
  User:     LavaSoft
  Date:     2006-11-23
  Time:     0:41:43
  ReadMe:   测试tomcat数据源
--%>
 
<!--首先导入一些必要的packages-->
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="com.mysql.jdbc.Connection" %>
<!--设置中文输出-->
<%@ page contentType="text/html; charset=GBK" %>
 
 
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
 
    <title>DbJsp1.jsp</title>
</head>
<body>
<%
    //try开始
    try {
        java.sql.Connection con;
        Statement stmt;
        ResultSet rs;
 
//建立数据库连接
        Context ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/zfvimsds");
        con = ds.getConnection();
//创建一个JDBC声明
        stmt = con.createStatement();
//增加新记录
        stmt.executeUpdate("INSERT INTO books (id,name,title,price) VALUES ('999','Tom','Tomcat Bible',44.5)");
//查询记录
        rs = stmt.executeQuery("SELECT id,name,title,price from books");
//输出查询结果
        out.println("<table border=1 width=400>");
        while (rs.next()) {
            String col1 = rs.getString(1);
            String col2 = rs.getString(2);
            String col3 = rs.getString(3);
            float col4 = rs.getFloat(4);
 
//convert character encoding
            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("<tr><td>" + col1 + "</td><td>" + col2 + "</td><td>" + col3 + "</td><td>" + col4 + "</td></tr>");
        }
        out.println("</table>");
 
//删除新增加的记录
        stmt.executeUpdate("DELETE FROM books WHERE id='999'");
 
//关闭数据库连结
        rs.close();
        stmt.close();
        con.close();
    }
 
//捕获错误信息
    catch (Exception e) {
        out.println(e.getMessage());
    }
 
%>
</body>
</html>
---------------------------------------------------------------------------------------------------
3、  打成wartestweb.war,复制到E:\myserver\apache-tomcat-5.5.20\webapps下面,然后启动tomcat,然后再关闭,然后会发现在E:\myserver\apache-tomcat-5.5.20\conf\Catalina\localhost下面多了一个testweb.xml文件,将此文件打开,内容如下:
--------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/">
</Context>
--------------------------------------------------------------------------------------------------
4、  修改这个生成的文件,方法是将(四-4)部分里面生成的连接池配置信息复制到这个文件里面,完成后如下:
--------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/">
  <Resource
    name="jdbc/zfvimsds"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    password="leizhimin"
    maxIdle="2"
    maxWait="5000"
    username="zfvims"
    url="jdbc:mysql://127.0.0.1/zfvims"
    maxActive="4"/>
</Context>
--------------------------------------------------------------------------------------------------
 
5、  然后保存,打开http://127.0.0.1:8080/testweb/,如下图所示,说明连接池配置成功。
 
 
六、后记,其中有些需要特别说明的部分如下:
1、  我在tomcat-5.0.285.5.20上都做类似的配置,发现两个生成的server.xml差异比较大,其中5.5生成的格式更简练一些。
2、  tomcat数据源在java程序中的访问必须为java:comp/env/jdbc/zfvimsds这样的格式,其中红色部分java:comp/env/是固定的写法,蓝色部分jdbc/zfvimsds是数据源的JNDI名字。
3、  另外Tomcat与集成开发环境IDE之间应用还有很多技巧,本人尤为推荐Idea5.12,最好用的java开发工具。
 
为更多刚步入java道路上的兄弟姐妹们一点参考!
 
 




    文章评论
 
2007-04-28 17:17:37
正好用到,感谢提供 !

2007-04-30 01:38:21
请问怎样打包?
打包有什么作用?

2007-04-30 11:47:56
打包实际上是为了发布方便,war是web应用标准格式,除此之外,还有jar、ear包,分别是java存档、企业应用存档,ear是把整个J2EE应用打在一个包中的存档文件,其中常常包含了ejb,否则一般都打war包。

那不打包能发布吗?当然可以的,这个包就是为了存储发布方便。你可以设想,要是不打包,一堆一堆的文件和文件夹,怎么去传输?

jar、war、ear实际上都是一种zip格式的压缩文件,可以用winrar或者winzip来解压缩该文件。

打包的工具是jdk自带的jar.exe,在jdk安装目录的bin目录下面。

有关打包知识可以从windows命令行下进入jdk的安装目录下的bin目录,然后输入jar命令,就可以看到打包说明了。

下面是我运行后的结果:
-------------------------------
用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
选项:
  -c 创建新的存档
  -t 列出存档内容的列表
  -x 展开存档中的命名的(或所有的〕文件
  -u 更新已存在的存档
  -v 生成详细输出到标准输出上
  -f 指定存档文件名
  -m 包含来自标明文件的标明信息
  -0 只存储方式;未用ZIP压缩格式
  -M 不产生所有项的清单(manifest〕文件
  -i 为指定的jar文件产生索引信息
  -C 改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。

示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
    jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有
      文件存档到一个名为 'classes.jar' 的存档文件中:
    jar cvfm classes.jar mymanifest -C foo/ .

---------------------------------

在实际中,更多的打包方式是通过IDE或者ANT脚本来打包,而非这个。ANT可以做到精力度的控制。更多知识请参考ant说明文档。


2007-04-30 16:24:16
出现这样的提示,该怎么解决?

HTTP Status 404 - /text/

--------------------------------------------------------------------------------

type Status report

message /text/

description The requested resource (/text/) is not available.

2007-04-30 17:52:26
唉,404就是找不到资源。你看看提示很清楚在说:找不到(/text/)所请求的资源文件。

你的(/text/)中的text是什么,servlet?还是别的?

如过是Servlet,就直接写作/text
如果是目录,你需要欢迎文件里面做配置。
如果是jsp,那么需要写作/text.jsp,以/结尾一般都需要在欢迎文件配置中设定,否则都是错误的。


2007-04-30 23:05:09
哦,明白了,可是还是不行,是不是JDBC没有做好?
提示:
Name try(我的数据库名) is not bound in this Context

2007-05-03 02:10:48
写的很详细,连接成功!感谢提供:)
(一)篇中如果修改了mysql客户端的字符集,似乎可以不使用col3 = new String(col3.getBytes("ISO-8859-1"), "GB2312");这样的代码了。显示中文成功~

2007-05-08 19:11:02
中文问题可以在页面编码和数据库编码方式上设置,都设置为GBK就没有问题了,文章的重点是连接池。不是别的。

2007-05-08 19:11:02
中文问题可以在页面编码和数据库编码方式上设置,都设置为GBK就没有问题了,文章的重点是连接池。不是别的。

2008-02-17 22:03:54
E:\myserver\mysql-5.0.27-win32\bin>mysqld --install mysql5 --defaults-file= E:\m
yserver\mysql-5.0.27-win32\my.ini
080217 22:19:08 [ERROR] mysqld: unknown option '--install'
真的很头痛啊!!!请帮我吧!!!!谢谢了!!!!!

2008-02-18 08:01:48
你没有按照所写的去做,应该在mysql的bin目录下的Dos窗口运行mysqld的命令!明白吗?

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: