【博客搬家】Tomcat 5.0.16 MySQL 4.0.16数据连接池与中文解决方案

前言:
就Tomcat连接池与中文显示解决方案看了大量的资料,但没有一个能够正确解释和配置的,经过多天反复调试终于解决了,呵呵!愿跟大家一起分享。
软件安装:
Tomcat: 5.0.16版本或者5.0.以上的版本.
Mysql:   4.0.16,其他版本我测试过都不尽人意,虽然5.0以上才有存储过程,但是对中文的支持太差了。我建议大家还是使用这个版本或者4.0左右的版本。
Mysql连接驱动:mysql-connector-java-3.0.9-stable.zip 用这个版本的,其他版本的好像有问题,经测试没有问题。
[==下载 地址 http://mysql.secsup.org/Downloads/Connector-J/
第一步:安装Tomcat,我默认端口号80。
第二步:安装MySQL数据库。
第三步:配置连接池:
1、首先用 http://127.0.0.1/admin 这个界面新建一个数据库连接池。用户名密码就是你安装Tomcat时候填写的用户名密码。
进入界面后,选择Resources->Data Sources->然后从右边的下拉菜单选择-〉Create New Data Source,然后填写如下:
JNDI Name: jdbc/mysql   (别名)
Data Source URL: jdbc:mysql://127.0.0.1:3306/mydata?useUnicode=true&characterEncoding=gb2312    (连接串,useUnicode和characterEncoding就是解决乱码的方案之一)
JDBC Driver Class: com.mysql.jdbc.Driver  (驱动)
User Name: root  (用户名)
Password: 5277 (密码)
Max. Active Connections: 4   (看书)
Max. Idle Connections: 2  (哈哈)
Max. Wait for Connection: 5000  ()
Validation Query: select CURRENT_DATE  (测试连接状态的语句)
填写完毕后提交 save-〉然后选择comit Changes 按钮,然后log out退出
注意,这样配置的有些问题,我们应该再打开tomcat/conf/server.xml
找到jdbc:mysql://127.0.0.1:3306/mydata?useUnicode=true&characterEncoding=gb2312将它更改一下
jdbc:mysql://127.0.0.1:3306/mydata?useUnicode=true&characterEncoding=GB2312
因为xml中&是特殊字符,因此必须改为&作为转义字符 。
[/ 5.5..9版本不需要自己手动改,会自动改好/]

2、到tomcat/conf/web.xml的</web-app>前面加入
<resource-ref>
     <description>DB Connection</description>
     <res-ref-name>jdbc/mysql</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
</resource-ref>
3、到C:&#92;Tomcat&#92;conf&#92;Catalina&#92;localhost下找到相应站点的.xml,如我的站点叫做DataBase,因此就有一个DataBase.xml的文件,如没有就手工建立一个。复制代码如下
<Context docBase="C:/Tomcat/webapps/DataBase" path="/DataBase">
  <Resource name="jdbc/mysql" auth="Container"
            type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/mysql">
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>root</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>5277</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>com.mysql.jdbc.Driver</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:mysql://127.0.0.1:3306/mydata?useUnicode=true&amp;characterEncoding=GB2312</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>20</value>
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>5</value>
    </parameter>
    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>
  </ResourceParams>
</Context>
注意转义字符又出现了,别忘记更改,如果大家要复制的话,直接更改站点名称、用户名、密码、数据库名即可。
4、到自己的站点下找到web.xml加入下列内容。
<description>MSSql server Test App</description>
<resource-ref>
     <description>DB Connection</description>
     <res-ref-name>jdbc/mysql</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
</resource-ref>
5、把mysql-connector-java-3.0.9-stable.zip 里面的驱动包mysql-connector-java-3.0.9-stable-bin.jar放到C:&#92;Tomcat&#92;common&#92;lib下面去。
6、到这里已经配置完毕了。重新启动Tomcat,就成功了。写个测试代码看看了。呵呵!
test.jsp 文件内容如下:
< %@page c %>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%
   Connection c;
   Statement stmt=null;
   try
   {
      Context initC InitialContext();
      Context envContext=(Context)initContext.lookup("java:/comp/env");
      DataSource ds =(DataSource)envContext.lookup("jdbc/mysql");
      conn = ds.getConnection();
      stmt = conn.createStatement();
      String strSql = "select * from usertable";
      ResultSet rs = stmt.executeQuery(strSql);
      while(rs.next())
      {
%>
         <%=rs.getString("UserName")%>
<%              
      }
      rs.close();
      stmt.close();
      conn.close();
   }
   catch(Exception ex){
    ex.printStackTrace();
   }
   finally
   {
      try
      {
              if(stmt!=null)
              {
                  stmt.close();
              }
              if(conn!=null)
              {
                  conn.close();
              }
      }
      catch(Exception e)
      {
             e.printStackTrace();
      }
   }
%>
切记要加入< %@page c %>,这样页面才能显示正确的汉字。
-------------------------------------完毕----------------------------------------- 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值