日期:2014-05-20  浏览次数:20783 次

java执行多条sql语句的问题
我有四句sql语句,想要一起读取执行。但是我在软件里执行无误,在java里却告诉我语法错误。
后来,我的解决办法是一句一句的执行。到现在我还不知道为什么多个sql语句不能一次执行,我也用PreparedStatement的 批处理 和 预处理了,还是不行。我觉得应该是 “ ; ” 的问题,谁知道可以帮忙说下。
sql语句如下
SQL code
  DROP DATABASE IF EXISTS `guocui`;
    CREATE DATABASE `guocui`;
   USE `guocui`;
   CREATE TABLE  `message` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` char(10) NOT NULL,
  `msg` text NOT NULL,
  `email` char(50) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;


------解决方案--------------------
在查询分析器中执行有错误吗
------解决方案--------------------
探讨
你这个是在数据库中代码可以,但是放在java中那又是什么意思,
DROP DATABASE IF EXISTS `guocui`;
CREATE DATABASE `guocui`;
USE `guocui`;
CREATE TABLE `message` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` char(10) NOT NULL,
`msg` text NOT NULL,
`email` char(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
java怎么识别你…

------解决方案--------------------
statment,PreparedStatement执行的都是查询或者DML

DDL是不能执行的。

但是JAVA是可以通过编程实现你文中大部分需求的。
------解决方案--------------------
探讨
statment,PreparedStatement执行的都是查询或者DML

DDL是不能执行的。

但是JAVA是可以通过编程实现你文中大部分需求的。

------解决方案--------------------
实在不行你写成存储过程用java去调用啦...不过我纯粹瞎说而已~对用jdbc建表没干过.
另外你的preparedstatement那么写基本白用了啊..
你也得弄点?号出来,然后给?号的地方赋值这样比较不容易出格式上的问题啊.
------解决方案--------------------
把你组合出来的manySql值放到查询分析器中执行一下看看是否可以?
------解决方案--------------------
DROP DATABASE IF EXISTS `guocui`;
CREATE DATABASE `guocui`;
USE `guocui`;
CREATE TABLE `message` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` char(10) NOT NULL,
`msg` text NOT NULL,
`email` char(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
DROP,CREATE这些是DDL语句,不能在JAVA中执行,存储过程中也是一样不能执行。
只有DML如insert,delete,update,select才能执行。
见意楼主先搞清楚SQL语言分类:
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,
数据定义语言DDL,数据控制语言DCL
数据查询语言DQL Q = Query
数据操纵语言DML M = Manipulation
事务控制语言TCL C = Control
数据定义语言DDL D = Definition
数据控制语言DCL(自动提交事务)
------解决方案--------------------
探讨
DROP,CREATE这些是DDL语句,不能在JAVA中执行,存储过程中也是一样不能执行。

------解决方案--------------------
楼主还是一个一个调用吧,DDL不是批处理的范畴。 呵呵!