站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题使用jdbc的第一个问题超级菜~

使用jdbc的第一个问题超级菜~

摘要: 使用jdbc的第一个问题超级菜~


package mypackage;
import java.sql.*;

public class SelectionData {
private Connection con;
public SelectionData(){
try {
Class.forName(org.gjt.mm.mysql.Driver);
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root","1");
}
catch(java.lang.ClassNotFoundException e) {
e.printStackTrace();
}
catch(SQLException ex){
ex.printStackTrace();
}
}
public void deleteTable(String sql){
System.out.println("drop table");
try{
Statement stmt=con.createStatement();
stmt.execute(sql);
stmt.close();
}
catch(Exception ex){
ex.printStackTrace();
}
}
public static void main(String[]args){
SelectionData db=new SelectionData();
db.deleteTable("drop table delete");
}
}
//执行就报这个:
drop table
java.sql.SQLException: Syntax error or access violation message from server: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'delete' at line 1"
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1997)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1224)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2244)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2192)
at com.mysql.jdbc.Statement.execute(Statement.java:906)
at mypackage.SelectionData.deleteTable(SelectionData.java:57)
at mypackage.SelectionData.main(SelectionData.java:66)
//希望有会个帮个忙超级感谢~~


你的表叫什么名字?是叫“delete”吗?


这个异常栈信息不是已经很清楚了吗?
是sql语法错误.

你的sql语句 drop table delete
有错误.
drop table后面应该跟表名.
但是delete是sql关键字,是不可能被用来做表名的.


sql语法错误,delete是SQL关键字


实在太感谢了~终于编译成功了


↑返回目录
前一篇: EJB的server和client分别在两个不同的机器上,用RMI访问速度其慢,怎么提高效率阿??
后一篇: 救救我吧!