环境
jdk1.5
jdbc驱动 mysql-connector-java-3.1.10-bin
tomcat 5.5.11
mysql server 4.1.13
数据源的配置其实不是很复杂,但是其中是jdk jdbc tomcat mysql版本的匹配问题比较麻烦,特别是tomcat 与jdbc驱动的关系比较麻烦.随着tomcat版本的更新,它的server.xml文件中数据源的配置情况会发生变化,这个配置如何写,
最好的办法是按照随tomcat 一同发布的文档,
在apache官方网站(5.5.11的文档在http://jakarta.apache.org/tomcat/tomcat-5.5-doc/index.html)或者tomcat的服务器安装完成后的首页面会有一个连接到 (http://localhost/tomcat-docs )左侧的链接 JDBC DataSources(http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html)中有关于配置的内容,按照它的说法做应该没什么问题的.很多时候有dbcp错误,这个肯定是server.xml文件格式,还有一个是jdbc驱动找不到,那是驱动的位置问题
另外有两个关键的问题
第一个是mysql驱动,在mysql官方网站有Connector/J下载 ,我用的是mysql-connector-java-3.1.10,在这个压缩包里面有两个文件,mysql-connector-java-3.1.10-bin和mysql-connector-java-3.1.10-bin-g,其中末尾带-g的这个包不要使用,这个包用于debug,不是实际应用环境使用的,这点在mysql的网站有说明(http://dev.mysql.com/doc/connector/j/en/cj-system-requirements.html),所以最好不要copy到common\lib目录下面
第二点就是不允许用空密码的用户连接mysql,这个问题在apache网站有说明,在mysql网站关于jdbc驱动里也有说明,原因主要是基于安全管理的考虑.给出这两个网站关于这个问题的连接.
在apache(http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html)这页面中谈到
Create a new test user, a new database and a single test table. Your MySQL user must have a
password assigned.
The driver will fail if you try to connect with an empty password
在mysql也有某些常见的jdbc异常解决