【问题标题】:Create table works in MySql but not in JDBC创建表在 MySql 中有效,但在 JDBC 中无效
【发布时间】:2012-07-25 07:30:08
【问题描述】:

这适用于 MySql-

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

【问题讨论】:

  • 每个executeUpdate() 一个查询
  • @shubhansh - execute() 也失败了。同样的错误。

标签: java mysql exception jdbc


【解决方案1】:

一些 jdbc 驱动程序存在问题,包括 ;在语句的末尾,但主要问题是每次执行更新只有一条语句。

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

【讨论】:

  • 是的!这样可行。我分别执行了每个查询。我想知道为什么 API 不能像在 MySql 工作台中那样执行语句。
  • 因为 MySQL Workbench 是一个产品,所以 JDBC 是一个标准化的 api。我猜 MySQL 工作台会在内部解析您的语句,并像其他数据库接口一样一次执行一条语句。
  • 谢谢!我在想,为什么他们不能让它像 Workbench 一样工作——那样会更直观。
猜你喜欢
  • 2016-07-04
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-28
  • 2014-03-23
  • 1970-01-01
相关资源
最近更新 更多