2012-07-25 28 views
0

这个作品在MySql-创建表工作在MySQL,但不是在JDBC

create database CarRentalCo; 
use CarRentalCo; 
create table LuxuryCars(rate varchar(5)); 

我试着做在Java中同样的事情,使用JDBC和我得到了一个错误 -

//Some code here 
String query = 
"create database CarRentalCo; " 
"use CarRentalCo; " 
"create table LuxuryCars(rate varchar(5)); " 
//some code here 
executeUpdate(query); 

错误:

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 'use CarRentalCo; create table LuxuryCars(rate varchar(5))' at line 1 
+7

每执行一个查询executeUpdate()' – 2012-07-25 07:32:15

+0

尝试使用execute() – Shubhansh 2012-07-25 07:38:14

+0

@shubhansh - execute()也会失败。同样的错误。 – 2012-07-25 07:40:10

回答

2

某些jdbc驱动程序有问题,包括a;在语句结尾,但主要问题是每个executeUpdate只有一个语句。

此外,我不认为这是一个好主意,当您使用jdbc时通过查询更改数据库连接。应该是url连接字符串的一部分。

+0

是的!这样可行。我分别执行每个查询。我想知道为什么API不能像执行MySql工作台那样执行语句。 – 2012-07-25 07:45:31

+0

由于MySQL工作台是一个产品,JDBC是一个标准化的API。我猜MySQL工作台会在内部解析你的语句并像其他DB接口一样一次执行它们。 – 2012-07-25 07:46:28

+0

谢谢!我在想,为什么他们不能像Workbench那样工作 - 会更直观。 – 2012-07-25 07:49:08

相关问题