让人头疼的问题,还望高手不吝赐教

preyswee 2004-09-15 02:25:57
用的是
MySQL4.0.21
Tomcat5.0.28
Window XP SP1
没有接触连接池之前
数据库的连接都是在JavaBean里面写
解决中文问题一般用下面的url
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gb2312

后来用Tomcat自带的DBCP配置成功
但是中文是乱码
如果也改成上面的url

<parameter>

<name>url</name>

<value>jdbc:mysql://localhost:3306/test?useUnicode&characterEncoding=gb2312</value>

</parameter>

Tomcat启动时报错
2004-9-15 2:02:30 org.apache.commons.digester.Digester fatalError
严重: Parse Fatal Error at line 74 column 79: The reference to entity "characterEncoding" must end with the ';' delimiter.
org.xml.sax.SAXParseException: The reference to entity "characterEncoding" must end with the ';' delimiter.

好像这时候url字符串的问号后面只能跟一个参数,有"&"就会报错

可是只有一个参数解决不了问题
这与JDBC驱动有关系么mysql-connector-java-3.0.15-ga-bin.jar
这怎么办?
...全文
151 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kes 2004-09-15
在server.xml中的jdbc url中的"&"符号应该用转义字符如下:
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gb2312
回复
kingmaxno1 2004-09-15
不知楼主有没有看错误提示,他说要在最后面加上分号";",你试试
回复
preyswee 2004-09-15
我现在用UTF-8还是不成

下面是全部的东西

这个是TestDBCP.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%
long start=System.currentTimeMillis();
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/TestDBCP");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String strSql="insert into tbl_test (name) values ('中文')";
stmt.executeUpdate(strSql);
strSql = " select id,name from tbl_test ";
ResultSet rs = stmt.executeQuery(strSql);
while(rs.next())
{
out.println(rs.getString(1));
out.println(rs.getString(2)+"<br>");
}
out.println(System.currentTimeMillis()-start);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
中文
</body>
</html>保存成UTF-8格式

下面是web.xml添加的
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDBCP</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

下面是server.xml里的
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test</value>
</parameter>

下面是MySql里的
CREATE TABLE `test`.`tbl_test` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(45) NOT NULL
)
CHARACTER SET utf8;

但是还是不行啊,都是乱码,为什么
回复
preyswee 2004-09-15
是不是在server.xml的url不能有&符号啊

一有这个就报错
回复
preyswee 2004-09-15
不好意思啊
少写了点东西少了个=true
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gb2312</value>
</parameter>

但是问题没有解决啊
Tomcat还是报错
高手帮忙看一下
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-15 02:25
社区公告
暂无公告