eclipse JDBC连接数据库报错

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 '' at line 1求解决
package demo01;

import java.sql.Connection;
import java.sql.DriverManager;
import com.mysql.jdbc.Statement;
public class test01 {
public static void main(String[] args) {
//1.注册成功
try {
Class.forName("com.mysql.jdbc.Driver");
//2.获得数据库连接对象
/*
*connection是一个接口,表示Java程序和数据库的连接,
*只有获得该对象后,才能访问数据库
*/
String url="jdbc:mysql://localhost:3306/demo";//路径
String user="root";
String password="";
Connection conn=DriverManager.getConnection(url, user, password);
System.out.println(conn);//地址值
//3.获得statement对象

Statement sta=(Statement) conn.createStatement();
//4.执行sql语句
//在demo库中创建一个表(user):id,username,age
String sql="create table user( ID int,Username varchar(50),age int";
boolean flag=sta.execute(sql);
System.out.println(flag);
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("注册驱动成功了");
//5.关闭连接
}
运行结果及报错内容

com.mysql.jdbc.JDBC4Connection@7a07c5b4
注册驱动成功了
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 '' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
at com.mysql.jdbc.Util.getInstance(Util.java:387)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:939)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2547)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2505)
at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:840)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:740)
at demo01.test01.main(test01.java:33)

我想要达到的结果

解决报错,成功连接数据库


少一个 ")";
String sql="create table user( ID int,Username varchar(50),age int";
正确的sql
String sql="create table user( ID int,Username varchar(50),age int)";

SQL语句有错误,你可以开启SQL的日志输出看下,

报错原因: 你的sql语法错误;
思路:

  1. 建议你可以把sql语句单独拿出来执行,看看是否正确.

SQL语句有错啊
代码块第四行String变量后面少了一个")"啊