[問題] 有關 java 程式內的 sql 語法

看板java作者 (我愛你我愛妳)時間19年前 (2006/04/08 01:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
我有一個讓我很困擾的狀況 ... 我 xxx.java程式內的sql語法,除了select功能以外, 其他的 insert、delete 都不能執行,update還沒試,因為猜應該也不行。 JBuilder2005底下跑也不行, 但很奇怪,如果用裡面的 Database pilot連過去做上面的任何一個指令都沒問題, 用的不是同一種 connection 嗎? 用mysql內的command line直接打語法也沒問題, phpmyadmin底下輸入insert語法也生的出新資料,就寫在code內不行。 用mysqladmin看過權限,所有的資料庫存取動作都grant了。 我是用JDBC(mysql-connector-java-3.1.12-bin.jar) 作為程式與mysql資料庫間溝通的橋樑。 以下是我的錯誤訊息,第二行是我打了什麼SQL語法進去。 後面並附上程式碼, 可以請大家幫我想想問題可能在哪裡嗎?感激感激。 (我測的快發瘋了 ... = =) - 資料庫連線成功 DELETE FROM testtest // print SQL command 資料庫連結錯誤,請檢查資料庫狀態. handle the error. SQLException:Can not issue data manipulation statements with executeQuery(). SQLState:S1009 VendorError:0 - import java.sql.*; public class Temp{ public static void main(String[] args){ String sql = "DELETE from testtest"; // fail //String sql = "INSERT INTO testtest(temp_int)" // + "VALUES('1')";" // fail //String sql = "SELECT * from testtest"; // only this ok Statement statement = null; ResultSet rs = null; try{ //載入MySQL Driver Class.forName("com.mysql.jdbc.Driver"); //進行連線 Connection MyConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","id","passwd"); System.out.println("資料庫連線成功"); statement = MyConn.createStatement(); rs = statement.executeQuery(sql); // process query results StringBuffer results = new StringBuffer(); ResultSetMetaData metaData = rs.getMetaData(); int numberOfColumns = metaData.getColumnCount(); for ( int i = 1; i <= numberOfColumns; i++ ) { results.append(metaData.getColumnName(i) + "\t"); } results.append( "\n" ); while ( rs.next() ) { for ( int i = 1; i <= numberOfColumns; i++ ) { Object obj; obj = rs.getObject(i); results.append(obj.toString()); results.append("\t"); } results.append( "\n" ); } }catch(ClassNotFoundException e){ System.out.println("找不到連線類別檔案"); e.printStackTrace(); }catch(SQLException e){ System.out.println("資料庫連結錯誤,請檢查資料庫狀態."); System.out.println("handle the error"); System.out.println("SQLException: " + e.getMessage()); System.out.println("SQLState: " + e.getSQLState()); System.out.println("VendorError: " + e.getErrorCode()); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.194.232 ※ 編輯: newbornme 來自: 140.113.194.232 (04/08 01:36)
文章代碼(AID): #14DfqaHf (java)
文章代碼(AID): #14DfqaHf (java)