问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java连接sqlserver,提示语法错误

发布网友 发布时间:2022-04-27 12:10

我来回答

5个回答

热心网友 时间:2022-05-04 03:06

SQL Server端运行的语句是如下吧:
select * from (select src.*, row_number() over (order by src.id asc) rownum from (select id, parentid, name, enable from configcity where 1 = 1 ) src) row_ where row_.rownum < 15

这个语句是没错的。
你的调试下程序,看传递到后台语句是不是对的。
where row_.rownum < 15,这个是有个参数传递的,传递的结果可能不对。
具体要看你程序怎么写。
一般是where子句根据条件判断生成后,再与主SQL语句合并。这个过程中,有逻辑漏洞的话,where子句会生是一个“ where ” 之类
这样程序运行的SQL,实际上就会是如下:
select * from (select src.*, row_number() over (order by src.id asc) rownum from (select id, parentid, name, enable from configcity where 1 = 1 ) src) row_ where

这样就会出错。
这个问题,估计不是SQL语句的错,是程序生成SQL或传递SQL时的错。不要查语句问题了,查程序的SQL语句生成或传递的部分吧。
你还是把程序最后生成的SQL,输出后检查下吧。形如? Parameters: [15]之类的,最后生成的SQL绝不会有这些的。追问我在程序中是一步一步进行断点调试的,到最后一步查询的时候sql语句就是上面那条语句,参数是个数组Parameters: [15],之前所有的都没问题,就最后执行的时候报错,报错信息就是之前发的那个
另外,之前用mysql就没问题,当然用mysql查询语句就不是这样了,最后只有“limit ?”

追答你所说的这些还不是最后一步呢。
你这只是把sql语句、参数传递完成。最后执行的sql语句是什么,你还没看到呢。
run.query()的返回就是已经执行完的结果么?那这样的话,中间还封装了有生成sql语句的过程。

你是用org.apache.commons.dbutils吧?我没用过,你看下封装的对象有没有提供输出sql语句的方法:
1、有的话,输出sql,然后检查下输出的语句,也即是最后在数据库端执行的那个sql,肯定是有问题的;
这时候,可以看下sql出问题的地方,是程序哪个地方生成的,那个地方的代码应该是有问题的;
2、没有办法获得输出的sql语句的话,只有笨办法:试:

先替换参数,不用参数的话,看下正常不。
2.1异常,则语句确实有问题,或者这个封装对象有问题;
语句问题的话,可能是有异常字符,比如全角空格、字符之类,逐段替换测试吧;
封装对象问题的话,更新个对象版本吧。
2.2正常,则参数有问题,或者封装的这个对象处理参数的功能有问题;
确认下参数没有问题,没有异常字符的话,更新个封装对象的版本吧。

热心网友 时间:2022-05-04 04:24

有两种可能:
第一、你写的字段和你数据库实际的数量不对。
第二、user是sql server中的关键字要使用[user]这样追问第一,字段没有问题,把这条语句放在数据库中可以正常执行;
第二,我这里没有user啊???

热心网友 时间:2022-05-04 05:59

只给错误不给代码不知道追问数据库查询使用的是org.apache.commons.dbutils.QueryRunner.query,程序中最后执行的语句是:this.list = run.query(querySql, new BeanListHandler(clazz, DbOperator.BEAN_ROW_PROCESSOR), params);

热心网友 时间:2022-05-04 07:50

参数怎么设的?
cstmt.setInt(1, 15); 这样吗?追问用的c3p0连接池和org.apache.commons.dbutils,最后执行的语句:this.list = run.query(querySql, new BeanListHandler(clazz, DbOperator.BEAN_ROW_PROCESSOR), params);

追答因为看不到具体写的过程,这个还真的很难说。
where 1 = 1 这个去掉呢?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
茶映人生:苦尽甘来 海尔冰箱冷藏室和冷冻室都是空空的通上电工作会更耗电吗? 上菱冰箱用过7年了,1米5高有点大,我每天冰箱里面只冻半斤肉,冷藏室其它... 结婚前个人的保险结婚后转成存单是属于个人财产还是夫妻双方的财产_百 ... 六个月宝宝大便水样蛋花怎么办 宝宝拉蛋花样便怎么办 ...张仙亲送玉麒麟,一家老少皆欢喜,祖德宗功信可凭。 我见青山多妩媚,料青山见我应如是意思 料青山见我应如是的意思_百度知... 电脑导航用哪个比较好电脑用什么网址导航哪个更好用 电脑看地图哪个好电脑上的哪个地图软件好 数据库排名问题,由于用的sqlserver2000,没法用row_number SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同 删除重复记录并保留其中记录号最大的一条,用 sql 语如何写 用sqlserver 的分页语句,能查出rownum给页面单独显示.是有序的.或者别... sqlserver里有没有像oracle里的rownumber(第几行)的函数啊 MSSQLServer 中的ROW_NUMBER , 在mysql ,oracle 中如何表示? 数据库sqlserver如何用存储过程做分页 sql server去重 sqlserver 使用 ROW_NUMBER() OVER(order by xxx)进行分页查询 我把相机里照片存到电脑上。在电脑上怎么找不到了 保存在电脑桌面上的图片在电脑重装后不见了,怎样找到? 请问各位在电脑上面保存了好几个文件夹的相片找不到了怎么恢复才是比较好的选择? 企事业公司为什么需要人事管理系统? 人事管理系统成为企业管理新宠的理由是什么? 人事系统能给企业的人力资源管理带来什么? 海伦宝冷风扇通电但是开不起是什么原因 奥克索无叶风扇的原理 戴森AM06 250mm无叶风扇怎么样,使用感受 无叶风扇和普通风扇哪个好 无叶风扇品牌介绍 无叶风扇为什么会产生风? 在sql,Server中如何按照数字取特定行列的元素,比如第三行,第五行,table命交table sql 2000 简单问题 SQL问题! 麻烦帮我把这个SQLServer语句换成Oracle语句能用的 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作... 大学生社会实践总结 澳洲淡水小龙虾的生态习性 澳洲淡水小龙虾的习性 跪求一篇大学三年的社会实践总结 vivo手机充电时间过长会自动断电吗? 新仙剑奇侠传的所有快捷键谁知道的? 新仙剑奇侠传有几个版本 新仙剑奇侠传 选择借土怪宝剑与否有什么区别? 《仙剑1》电视XP纪念版和《新仙剑奇侠传》有什么区别? 新仙剑奇侠传和仙剑奇侠传有什么区别 敢问仙剑奇侠传和新仙剑奇侠传有什么区别? 新仙剑奇侠传全支线攻略 关于《新仙剑奇侠传》 新仙剑奇侠传有几种版本? 新仙剑奇侠传和仙剑奇侠传的区别