日期:2014-05-18  浏览次数:20951 次

找不到com.mysql.jdbc.Statement的源
Eclipse,MYSQL,jdbc,tomcat都装好了 
下面是我写在Eclipse中写的程序 

package cn.com.chengang.sms.dbtest; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException
import java.sql.Statement; 
public class CreatDbAndTable { 

public static void main(String[] args) { 
Connection con=null; 
Statement sm=null; 
try{ 
//装载JDBC驱动程序 
Class.forName("com.mysql.jdbc.Driver");//org.gjt.mm.mysql.Driver 
//连接数据库 
con=DriverManager.getConnection("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8","root","123456"); 
//创建语句对象 
sm=con.createStatement(); 
//如果存在sms则先删除它再创建 
sm.addBatch("DROP DATABASELF EXISTS sms;"); 
sm.addBatch("CREATE DATABASE sms;"); 
//将当前库转到sms 
sm.addBatch("USE sms;"); 
//如果存在test_table表则先删除再创建 
sm.addBatch("DROP TABLE IF EXISTStest_table;"); 
//得到创建数据表的SQL语句 
StringBuffer sb=new StringBuffer(); 
sb.append("CREATE TABLEtest_table(");//创建test_table表" 
sb.append("id int(6) unsinged NOT NULL auto_increment,"); 
sb.append(" name0 varchar(10) default NULL,"); 
sb.append(" name1 varchar(10) character set latin1 default NULL,"); 
sb.append(" name2 varchar(10) character set gb2312 default NULL,"); 
sb.append(" name3 varchar(10) character set gbk default NULL,"); 
sb.append(" PRIMARY KEY (id)"); 
sb.append(")ENGINE=innoDB DEFAULT CHARSET=utf8;"); 
sm.addBatch(sb.toString()); 
//提交执行 
sm.executeBatch(); 
}catch(ClassNotFoundException e){ 
e.printStackTrace(); 
}catch(SQLException e){ 
e.printStackTrace(); 
}finally{//执行关闭操作 
if(sm!=null){ 
try{ 
sm.close(); 
}catch(SQLException e){} 
sm=null; 

if(con!=null){ 
try{ 
con.close(); 
}catch(SQLException e){} 
con=null; 




运行后 
java.sql.BatchUpdateException: 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 'TABLEtest_table(idint(6) unsinged NOT NULL auto_increment, name0 varchar(10) def' at line 1 
at com.mysql.jdbc.Statement.executeBatch(Statement.java:961) 
at cn.com.chengang.sms.dbtest.CreatDbAndTable.main(CreatDbAndTable.java:37) 
是JDBC的问题吗?我换了个版本也不行!


------解决方案--------------------
sql语句写错了,
sb.append("CREATE TABLEtest_table(");//创建test_table表"
sb.append("idint(6) unsinged NOT NULL auto_increment,");
改成:
sb.append("CREATE TABLE test_table(");//创建test_table表"
sb.append("id int(6) unsigned NOT NULL auto_increment,");

少了两个空格,unsigned你也写错了。 
呵呵,你到是哪到问呀,解决了别忘了给分呀。
以后写的时候一定要注意空格之类的
------解决方案--------------------
“You have an error in your SQL syntax ”
sql 语法错误 避免这种错误最简单的办法是 使用sql语句之前 把你的sql语句放到
数据库中执行一下