请问为啥我的这几行代码总报sql异常?明明在mysql下执行的很好,但到jdbc下执行就不行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问为啥我的这几行代码总报sql异常?明明在mysql下执行的很好,但到jdbc下执行就不行相关的知识,希望对你有一定的参考价值。

stmt.addBatch("use chat07");
stmt.addBatch("create table chatcontent(");
stmt.addBatch("id int primary key auto_increment,");
stmt.addBatch("chatcon varchar(100));");

stmt.addBatch 是用来执行批处理的.
addBatch()把若干sql语句装载到一起,然后一次送到数据库执行,执行需要很短的时间

一般是一次传一个语句.
例如:
stmt.addBatch( " INSERT INTO tmp VALUES( 1, 2) " );
stmt.addBatch( " INSERT INTO tmp VALUES( 3, 4) " );
stmt.addBatch( " INSERT INTO tmp VALUES( 5, 6) " );

而你的代码,看上去是把一个 SQL 语句, 拆成好几块,这个执行起来,好像有点问题。追问

那我的表格因为字段比较多,所以想拆分,有好的办法吗

追答

你再长的一个语句, 也是要作为一个 SQL 语句,传递给服务器的啊。

如果你想要你的 java 代码的可读性好一些。
可以先定义一个 string 变量 或者 StringBuffer 。
一行一行的,把 SQL 的字段,加入进去。
最后执行一次就好。

参考技术A StringBuffer sql = new StringBuffer("");
sql.append("create table chatcontent(");
sql.append("id int primary key auto_increment,");
sql.append("chatcon varchar(100))");

stmt.addBatch(sql.toString());
参考技术B 额 addBatch是用来一次性提交多个mysql语句的,如果是想把一个mysql语句拆分,那需要先定义一个StringBuffer参数,然后用append来链接
比如
StringBuffer sqlSelAlarm = new StringBuffer();
sqlSelAlarm.append(" select count('x') ");
sqlSelAlarm.append(" from tab_alarm_status where DATE_TIME<date_format(DATE_ADD(now(),INTERVAL -? DAY),'%Y-%m-%d 00:00:00') ");

我的sqlserver2008明明安装好了,为啥一开机就提示sqlserver打不开

可能是安装出现了问题,可能是系统版本不支持导致的,SQLSERVER比较变态,安装容易卸载难,尝试修复安装一下,如果还是不行,只能想办法重装了,哎,重装SQLSERVER就是一个灾难。 参考技术A 看一下windows event viewer找找相关的错误。追问

事件查看器不知道这么看啊? 都是莫名其妙的东西.

以上是关于请问为啥我的这几行代码总报sql异常?明明在mysql下执行的很好,但到jdbc下执行就不行的主要内容,如果未能解决你的问题,请参考以下文章

我的sqlserver2008明明安装好了,为啥一开机就提示sqlserver打不开

我在使用BeanUtil工具包时,用populate()方法时总报异常

为啥我的 std::pow 和 std::fmod 结果错误? [复制]

请问Resin服务器怎么设置能够在页面显示详细的异常信息啊

为啥此代码显示参数索引超出范围异常? [复制]

ASP.NET:如何在这几行代码中提高内存使用率?