足彩总进球数二三球足彩总进球数二三球

Jsp與Mysql連接探究查錯



作者:    文章來源:
發布日期:2007年01月28日
說實話,我做jsp與Mysql的連接已經有快一個多星期了,就是因為上次那個 2000Server 崩潰,讓我又花了三天重裝 Whilterl(就是那個WindowsXPServer,有興趣的可以看我的Whilter初體驗那篇文章),不是自己親身體驗不知道呀,現就和大家一起分享.

我本來在 Linux 下已經很好的實現了Jsp與Mysql的連接,(點擊放大,下同),



但是為了檢驗每一個程序的跨平臺性,我還要在Windows下來檢驗,結果惡夢不斷,最終導致了系統崩潰,幾近一年的配置全部丟失.

也許我要提到的下文作者,在他的機子上調試一切正常,但是我則不然,下面我就把其中的不妥指出,(在我的調試中有錯的我用紅色顯示),原文如下:

************************************************************

在Win2000下用PHP和JSP連接MySQL

www.linuxaid.com.cn 01-07-23 23:01 5379p 處處
------------------------------------------------------------
一、前言
在閱讀本文檔之前,你的Win2000下應該已經安裝好了Apache、JDK、Tomcat、PHP、MySQL.如果你還沒有成功地安裝好這些軟件,你可以參閱Apache1.3.20在Windows下的使用、Windows下JDK1.3.1的安裝、Tomcat在Win2000下的安裝、PHP在Win2000下的安裝、MySQL在Win2000下的安裝進行安裝.
在本文檔中,我們并不準備對PHP、MySQL、JSP作過多的解釋,我們將假定你已經大致掌握了PHP、MySQL、JSP.我們僅僅是探討在Win2000下,使用PHP和JSP連接MySQL的方法.
二、MySQL的前期準備
在我們之前安裝的MySQL中,我們僅僅是使用了系統初始的root用戶.在本文中,我們不準備繼續使用root用戶,雖然我們是在一個試驗環境下工作,但是養成一個良好的習慣是至關重要的,因為我們將來面對的將可能是一個完全開放的Internet.和在絕大多數情況下一樣,MySQL中對root用戶的濫用也有可能導致MySQL的崩潰.
MySQL安裝后的初始情況有點怪怪的,要正確地增加用戶并設置用戶權限,我們有必要對mysql庫中的表User及DB進行清理.
首先,在命令行方式下進入c:/mysql/bin目錄,直接輸入mysql,你會進入MySQL的客戶端程序MYSQL(在下面,我們用MYSQL特指MySQL的客戶端程序,而在其他場合,我們將會使用MySQL).在“mysql>”提示符后輸入:
  show databases;
你會看到初始狀態下,MySQL下有兩個數據庫:mysql和test,test庫反正對我們也沒什么用,留著反而會混淆視聽,所以我們不妨將其刪除:
  drop database test;
有關用戶及其權限保存在mysql數據庫中,其中關鍵是db表和user表,現在,我們可以先將db表清空:
  use mysql;
delete from db;
然后我們對user庫進行清理,并進行刷新:
  delete from user where user='' or host='localhost';
flush privileges;
現在,用quit退出MYSQL.
  現在,你將不能直接輸入mysql進入MYSQL了(那種情況實際上是不需要用戶認證進入了MYSQL).你只能輸入mysql -u root -p.
  如果之前你為root用戶設置了密碼,這時會提示你輸入密碼,如果你還沒有設置,直接按回車鍵就可以進入MYSQL了.
  沒有口令的root用戶的存在是一個很恐怖的情況,你最好先退出客戶端程序用我們在MySQL在Win2000下的安裝中講述的方法為root設置一個口令后再進入MYSQL.
  我們建立一個用于使用的新的數據庫:
  create database my_test;
在這個庫中建立一個數據表:
  use my_test;
create table my_test_table (test_column char(20) not null);
在這個表中增加一行:
  insert my_test_table values ('Hello,I'm MySQL!');
現在我們用grant命令建立一個新的用戶yzysy,該用戶只對my_test這個庫有SELECT、UPDATE、INSERT以及DELETE的權限.該用戶的密碼也是yzysy:
  grant SELECT,UPDATE,INSERT,DELETE on my_test.* to yzysy identified by 'yzysy';
有關grant命令的詳細說明請參看MySQL用戶手冊.
第三用PHP連接MYsql省略
四、JSP連接MySQL
  JSP連接MySQL要稍微復雜一點.
  首先你必須從//www.mysql.com/Downloads/Contrib/mm.mysql.jdbc-1.2c.tar.gz下載mm.mysql.jdbc-1.2c.tar.gz,然后將其解壓到本地硬盤的一個目錄下(我們使用的是c:/mm.mysql.jdbc-1.2c.
  然后在CLASSPATH系統變量的最后添加c:/mm.mysql.jdbc-1.2c;(此處/應該是反斜杠)
創建一個JavaBean,名為DBconn.java,在Tomcat的/webapps/examples/WEB-INF/classes下建立一個mysqltest目錄,將該文件保存在這個目錄中,DBconn.java用來封裝與數據庫鏈接的操作.DBconn.java的內容如下:
package Mysqltest;
import java.sql.*;
public class DBconn
{String DBDriver="org.gjt.mm.mysql.Driver";
String ConnStr="jdbc:mysql://localhost/my_test";
String MyUser="yzysy";
String MyPassword="yzysy";
Connection conn = null;
ResultSet rs = null;
public DBconn()
{try
{Class.forName(DBDriver);
}
catch(java.lang.ClassNotFoundException e)
{System.err.println("DBconn (): " + e.getMessage());
}
}
public ResultSet executeQuery(String sql)
{rs = null;
try
{conn = DriverManager.getConnection(ConnStr,MyUser,MyPassword);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
}
  我們注意到在這段程序是只有
  String DBDriver="org.gjt.mm.mysql.Driver";
 String ConnStr="jdbc:mysql://localhost/my_test";
  帶有MySQL的特色,其余的程序與其他JDBC應用并沒有什么不同.
利用JDK的Javac命令編譯DBconn.java形成相應的class文件.
在Tomcat的/webapps/examples/jsp目錄下建立Mysqltest.jsp文件.其內容如下:
<%@ page contentType="text/html; charset=gb2312" %>


  JSP連接MySQL! - 足彩总进球数二三球
 
 
  <%@ page language="java" import="java.sql.*" %>

  <%
ResultSet RS = DBconn1.executeQuery
("SELECT * FROM my_test_table");
while (RS.next()) {
out.print("

滚球总进球数怎么算:" + RS.getString("test_column")
+"

");
}
RS.close();
%>
 

在這兒,你已經看不到任何MySQL的痕跡了.
現在在瀏覽器的地址欄中輸入//localhost/examples/jsp/Mysqltest.jsp,你應該可以看到黑體的“Hello,I'm MySQL!”.
五、結語
現在,你的Win2000下已經成功地搭建了一個零成本的Web服務器.不過,我個人以為,在Win2000下只能作為一個開發環境,真正要投入使用,還有使用linux能得到更多的性能和安全上的保證.(End)

************************************************************

其實就錯了那一點,Mysql驅動程序的指向,我按其說的那樣做,結果Tomcat總是報沒有合適的驅動,



我為了驗證指向目標的目錄正確性,把《超級馬力兄弟》游戲放到這個目錄里,在DOS窗口輸入《超級馬力兄弟》游戲名,游戲可以找到,說明CLASSPATH設置正確,那就是說,JSP服務器沒有來這找,無論我怎么試都無濟于事,從此惡夢成了我的好朋友......

在我重新安裝好XPServer后我把mm.mysql.jdbc-1.2c目錄下的ORG目錄全部拷貝到Tomcat40CLASSES下,不承想竟然成功了:



所有由新奇世界 iNENS 提供//vip.6to23.com/wocienyoung

因為驅動程序是String DBDriver="org.gjt.mm.mysql.Driver"所以要把ORG整個目錄全考過來,至此整個連接調試完成,JSP真正是一次編寫處處使用,(順便說一句,我在Linux下用的是Resin,在Profile里面直接Export Classprth就找到Mysql的驅動了)看來環境不同,什么就有可能不同,在此寫出來希望對那些增在尋求辦法的有所幫助.

新奇世界 ©iNENS 提供




Copyright © 2002-2012 www.ngfcl.com. All rights reserved.
JSP中文網    備案號:粵ICP備09171188號
成都恒??萍擠⒄褂邢薰?nbsp;   成都市一環路南二段6號新瑞樓三樓8號