Apache Tomcat/6.0.39如何配置連接mysql,JDBC:mysql-connector-java-5.1.30-bin.jar-成功連接心得


http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html

前提:開啟TOMCAT,MYsql


MySQL DBCP Example
0. Introduction

Versions of MySQL and JDBC drivers that have been reported to work:

MySQL 3.23.47, MySQL 3.23.47 using InnoDB,, MySQL 3.23.58, MySQL 4.0.1alpha
Connector/J 3.0.11-stable (the official JDBC Driver)
mm.mysql 2.0.14 (an old 3rd party JDBC Driver)
Before you proceed, don't forget to copy the JDBC Driver's jar into $CATALINA_HOME/lib.

這句話的意思是說,在開始下面的工作之前必須將JDBC驅動jar包(我用的是mysql-connector-java-5.1.30-bin.jar),放到G:\apache-tomcat-6.0.39-windows-x86\apache-tomcat-6.0.39/lib目錄下,另外我自己昨天搗鼓的時候設置過一些環境變量,不知道會不會有影響,通過下面的測試發現,沒有影響。(我的環境變量CATALINA_HOME值設置為G:\apache-tomcat-6.0.39-windows-x86\apache-tomcat-6.0.39)

1. MySQL configuration

Ensure that you follow these instructions as variations can cause problems.

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> GRANT ALL PRIVILEGES ON *.* TO javauser@localhost
-> IDENTIFIED BY 'javadude' WITH GRANT OPTION;
mysql> create database javatest;
mysql> use javatest;
mysql> create table testdata (
-> id int not null auto_increment primary key,
-> foo varchar(25),
-> bar int);


Note: the above user should be removed once testing is complete!
Next insert some test data into the testdata table.



mysql> insert into testdata values(null, 'hello', 12345);
Query OK, 1 row affected (0.00 sec)

mysql> select * from testdata;
+----+-------+-------+
| ID | FOO | BAR |
+----+-------+-------+
| 1 | hello | 12345 |
+----+-------+-------+
1 row in set (0.00 sec)

mysql>


2. Context configuration

Configure the JNDI DataSource in Tomcat by adding a declaration for your resource to your Context.

For example:

context.xml在G:\apache-tomcat-6.0.39-windows-x86\apache-tomcat-6.0.39\conf目錄下(我的筆記本上)

<Context>

<!-- maxActive: Maximum number of database connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to -1 for no limit.
-->

<!-- maxIdle: Maximum number of idle database connections to retain in pool.
Set to -1 for no limit. See also the DBCP documentation on this
and the minEvictableIdleTimeMillis configuration parameter.
-->

<!-- maxWait: Maximum time to wait for a database connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->

<!-- username and password: MySQL username and password for database connections -->

<!-- driverClassName: Class name for the old mm.mysql JDBC driver is
org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.
-->

<!-- url: The JDBC connection url for connecting to your MySQL database.
-->

<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"

<!--TestDB是我們自己在webapps下面建立的目錄-->
maxActive="100" maxIdle="30" maxWait="10000"
username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"

<!--username="javauser" password="javadude"是我們自己在創建數據庫時設置的用戶名和密碼-->
url="jdbc:mysql://localhost:3306/javatest"/>

<!--連接url="jdbc:mysql://localhost:3306/javatest"是很關鍵的,javatest是我們建立的數據庫名稱,3306是連接的端口號,我的是8080,所以修改成8080才能連接成功--> 經過再三測試還是要3306才對

</Context>


3. web.xml configuration

 

Now create a WEB-INF/web.xml for this test application.

這里原文說的不是很明確,具體操作是在TestDB目錄下新建WEB-INF,然后新建web.xml,添加下面的內容。

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>


4. Test code

Now create a simple test.jsp page for use later.

在TestDB目錄下新建test.jsp,添加下面的內容

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
select id, foo, bar from testdata
</sql:query>

<html>
<head>
<title>DB Test</title> <!--網頁顯示的標題-->
</head>
<body>

<h2>Results</h2><!--網頁顯示的內容-->

<c:forEach var="row" items="${rs.rows}">
Foo ${row.foo}<br/><!--查詢數據庫內容顯示出來-->
Bar ${row.bar}<br/><!--查詢數據庫內容顯示出來-->
</c:forEach>

</body>
</html>


That JSP page makes use of JSTL's SQL and Core taglibs. You can get it from Apache Tomcat Taglibs - Standard Tag Library project — just make sure you get a 1.1.x release. Once you have JSTL, (解壓后在\jakarta-taglibs-standard-1.1.1\lib)copy jstl.jar and standard.jar to your web app's WEB-INF/lib directory.

Once deployed, point a browser at http://localhost:8080/DBTest/test.jsp to view the fruits of your hard work.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM