statement.executeQuery(sql)出错的一种排查方法

在IDE里调试程序总是在执行SQL语句时报错(ps:如何定位错误?),这是一件很头疼的事。

一种比较有效的方法是:

(1)调用printf等输出函数,得到SQL语句

eg:

String sql = "select * from suser where name='"+name+"' and password='"+psd+"';";
System.out.println(sql);//这一行多余,但可确定“真正的”SQL语句

select * from suser where name= 'admin' and password='123456';

(2)直接去数据库中执行该SQL语句验证正确性。

只要数据库中语句能正确执行,就可确保 statement.executeQuery(sql)这条语句没有错误,至少不是SQL语句不对造成的错误。

(3)示例:

String sql = "select * from user where name='"+name+"' and password='"+psd+"';";
ResultSet resultSet = statement.executeQuery(sql);

第二条语句在编译器(Idea)中报错,输出SQL语句为 select * from user where name= 'admin' and password='123456';

去SQLserver2012中执行,即使是简化的select * from user,也会报错。

百度得知,user是关键词不可出现在SQL语句中。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值