2012-07-25 26 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

相關問題