[問題] 有關 java 程式內的 sql 語法
我有一個讓我很困擾的狀況 ...
我 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)
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章