为了账号安全,请及时绑定邮箱和手机立即绑定

关于sql语句的问题

if (command!=null&&!"".equals(command.trim())) {

sql.append(" and command=?");

paramList.add(command);

}

if (description!=null&&!"".equals(description.trim())) {

sql.append(" and description=like '%' ? '%'");

paramList.add(description);

}


这里面and前面为什么要空格,问号和百分号是干什么的,能详细点么


正在回答

1 回答

1、这个是sql拼接, 如果if语句中条件满足了,就会和之前的sql拼接,举个例子:select * from user where id=1,如果条件满足不加空格的话就会变成“select * from user where id=1and command=?”,很明显and和1连在一起了,是错误的

2、?是指带你要输入的数据,这个是数据库PreparedStatement预处理的操作,%?%举个例子:比如模糊查询想查userName, 那这个?代表你前台传过来的userName, 数据库里有123,1124,3323,你输入2,这三个值都能查出来,代表前面有任意字符,后面任意字符。

1 回复 有任何疑惑可以回复我~
#1

旧情歌_

你解释的确实是够清楚 for(int i = 0;i<10000;i++){ 强 };
2019-02-14 回复 有任何疑惑可以回复我~
#2

旧情歌_

and前面也可以没有空格,在上面拼接的sql语句后面加上空格也可以。
2019-02-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
通过自动回复机器人学Mybatis---基础版
  • 参与学习       107414    人
  • 解答问题       785    个

微信公众号自动回复功能学习Mybatis,基础教程加案例实战方式学习

进入课程

关于sql语句的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信