Hi,
My system configuration:
Mandrake 9.0 + Tomcat 4.1.24 + MySQL 4.0.12. + Apache
[問題]
我有一隻Servlet app. 如果 Tomcat + MySQL + APache + IBM JDK 1.3 or SUN JDK 1.4.1_02在一開機時就起動. 我在http://localhost:8080/servlet/myApp 是可以看到Servlet run 起來. 可是如果我console 底下killall java
把Tomcat 殺掉, 在從console底下啟動 Tomcat. 我的Servlet App 就無法 access database. 會出現 Column 'Heading' not found. 這裡的Heading是某一table內的column name, Heading.
我只好reboot. 一切就OK.
所以我又寫一隻Java Applet to access MySQL:
import java.applet.Applet;
import java.sql.*;
public class SqlTest extends Applet{
String url;
String query;
public void init(){
url = "jdbc:mysql://localhost/BJAVA";
query = "SELECT lastname, firstname FROM authors";
try{
Class.forName( "org.gjt.mm.mysql.Driver" );
}catch( Exception ex ){
}finally{
System.out.println( " Pass MySql connection .." );
}
}
public void start(){
try{
Connection conn = DriverManager.getConnection( url, "javaUser", "javaPass" );
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery( query );
while( rs.next() ){
String name = rs.getString( "lastname" );
System.out.println( name );
System.out.println( rs.getString( "firstname") );
}
stm.close();
conn.close();
}catch( Exception ex ){
System.out.println( " error at Start() .." );
ex.printStackTrace();
}finally{
System.out.println( " End Query..." );
}
}
}
結果輸出:
Pass MySQL connction...
error at start()...
java.sql.SQLException: Column 'lastname' not found
at com.mysql.jdbc.ResultSet.findColumn( ResultSet.java:2278 )
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:1815)
at SqlTest.start( SqlTest.java:47)
at sun.applet.AppletPanel.run(AppletPanel.java:371)
at java.lang.Thread.run( Thread.java:536)
End Query...
我用phpMyadmin 去看有authors table , lastname column, firstame column, lastname and firstname column 下都個有record.
如果我將以上applet的
String name = rs.getString( "lastname" ) 改成 String name = rs.getString( 1 );
System.out.println( rs.getString( "firstname" ) ) 改成
System.out.println( rs.getString( 2 ) );
就沒有java.sql.SQLException 輸出. 可是輸出也只有空白二行. 我access local MySQL or remote MySQL結果都是一樣.
為何這隻簡單Applet無法query MySQL table???
謝謝.