java中SQL update语句的不同内容
我需要编写一个更新函数,其内容根据传递的参数不同而不同,例如,如果我有updateBook(int id, String title, String author, int pages)
,我必须执行以下操作:
String sql;
if((!title.equals("null"))&&(!author.equals("null"))&&(pages>0)))
sql = "UPDATE book SET title='"+title+"', author='"+author+"', pages="+pages;
else if(((!title.equals("null"))&&(!author.equals("null")))
sql = "UPDATE book SET title='"+title+"', author='"+author+"'";
else if(((!title.equals("null"))&&(pages>0)))
sql = "UPDATE book SET title='"+title+"', pages="+pages;
... //and so on
sql = sql + " WHERE bookid="+id+";";
表中的字段越多,我需要做的检查就越多,这让人感到不舒服,需要我编写大量代码。 另外,做一些类似于:
sql = "UPDATE book SET ";
if(!title.equals("null"))
sql = sql +"title='"+title+"',";
if(!author.equals("null"))
sql = sql+"author='"+author+"',";
if(pages>0)
sql = sql+"pages="+pages";
sql = sql + ";";
无法工作,因为不需要的逗号会导致语句错误。 您还可以看到,如果我有6、7、8等字段,那么检查开始变得太多,并且我不能再执行更多单独的更新语句,因为如果出现问题,我需要回滚在该函数中执行的任何查询
有没有办法让定制的update语句只需编写很少的代码
# 1 楼答案
首先,使用PreparedStatement
我会像下面这样做