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());
展开
 我来答
特摄圈路人1k
2017-03-14 · 超过29用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:10.6万
展开全部
1、问号是占位符
2、deleteCharAt(sql.length()-1)
拼接的时候每个字段加了一个逗号,这个方法是删掉最后一个逗号
追问
那为什么一开始要加进去的..不加不就好了吗
追答
sql.append(field.getName()).append(",");
因为这个是在遍历的时候加的 ,所有字段都要加就最后一个不加
比如insert into user(id,name,age,)
要把age后面的逗号删掉
buyuanyi1314
2017-03-14 · TA获得超过647个赞
知道小有建树答主
回答量:539
采纳率:90%
帮助的人:470万
展开全部
因为sql是拼接起来的,sql.append("?").append(",");这句话最后会多个"," 要去掉不然执行sql会报错的。sql.deleteCharAt(sql.length()-1); 这句就是去掉sql字符串最后一个字符即","
希望能帮到你!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天涯LY时代
2017-03-14 · TA获得超过224个赞
知道小有建树答主
回答量:318
采纳率:55%
帮助的人:82.1万
展开全部
代码是拼接sql语句。采用预处理
deleteCharAt(sql.length()-1)是由于这个语句
for(Field field : fields){
if(!field.getName().equals("id")){
sql.append("?").append(",");
}
最后多个,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式