java中这个sql语句写的什么东西。看不懂,问号是占位符吗,deleteCharAt(sql.length()-1)为什么要这样?
StringBuffersql=newStringBuffer();sql.append("insertinto").append(tableName).append("...
StringBuffer sql = new StringBuffer();
sql.append(" insert into ").append(tableName).append("(");
// 加入字段信息
Field[] fields = clazz.getDeclaredFields();
for(Field field : fields){
if(!field.getName().equals("id")){
sql.append(field.getName()).append(",");
}
}
sql.deleteCharAt(sql.length()-1);
sql.append(") values ( ");
// 加入?
for(Field field : fields){
if(!field.getName().equals("id")){
sql.append("?").append(",");
}
}
sql.deleteCharAt(sql.length()-1);
sql.append(") ");
System.out.println(sql.toString()); 展开
sql.append(" insert into ").append(tableName).append("(");
// 加入字段信息
Field[] fields = clazz.getDeclaredFields();
for(Field field : fields){
if(!field.getName().equals("id")){
sql.append(field.getName()).append(",");
}
}
sql.deleteCharAt(sql.length()-1);
sql.append(") values ( ");
// 加入?
for(Field field : fields){
if(!field.getName().equals("id")){
sql.append("?").append(",");
}
}
sql.deleteCharAt(sql.length()-1);
sql.append(") ");
System.out.println(sql.toString()); 展开
3个回答
展开全部
因为sql是拼接起来的,sql.append("?").append(",");这句话最后会多个"," 要去掉不然执行sql会报错的。sql.deleteCharAt(sql.length()-1); 这句就是去掉sql字符串最后一个字符即","
希望能帮到你!
希望能帮到你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码是拼接sql语句。采用预处理
deleteCharAt(sql.length()-1)是由于这个语句
for(Field field : fields){
if(!field.getName().equals("id")){
sql.append("?").append(",");
}
最后多个,
deleteCharAt(sql.length()-1)是由于这个语句
for(Field field : fields){
if(!field.getName().equals("id")){
sql.append("?").append(",");
}
最后多个,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询