关于在Java代码中写Sql语句需要注意的有关问题
关于在Java代码中写Sql语句需要注意的问题
最近做程序,时不时需要自己去手动将sql语句直接写入到JAVA代码中,写入sql语句时,需要注意几个小问题。
先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错。
String str = "insert into XXX(a,b,c) values ('"a.getA()"','"a.getB()"','"a.getC()"');";
研究了半天发现应该是连接字符串问题,第一次修改过后将赋值字段前后加“+”号来完成sql语句。改正后代码如下
String str = "insert into XXX(a,b,c) values ('"+a.getA()+"','"+a.getB()+"','"+a.getC()+"');";
原来在数据库中给字段动态赋值需要以‘“+···+”’的方式来完成。好的,编译后成功,将运行的str的结果值放入sql数据库中测试,没有问题,自以为一切ok了,结果运行时再次报错。这把自己困扰住了,反复测试,在数据库中用sql语句来对比,没有问题啊,现将我最后成功的代码放上来,大家看看有没有什么不同。
String str = "insert into XXX(a,b,c) values ('"+a.getA()+"','"+a.getB()+"','"+a.getC()+"')";
没错,就是最后的分号,原来在java语句中不能讲分号加入到普通的sql语句中,虽然在数据库中没有报错,但是在java中一定还是要注意这种小问题的。
1 楼
haohao-xuexi02
14 小时前
细节决定成败……
2 楼
love422619
9 小时前
本人也曾遇到过!
3 楼
yixiandave
2 小时前
这样会被注入攻击的。。。。。用ParameterStatement吧
4 楼
yixiandave
2 小时前
另外楼主好像是php转过来的?抱歉php我只学过皮毛而且丢了很久了