select语句中的问号是什么意思? sql="select * from mytable where username=?"

2025-01-21 03:03:39
推荐回答(3个)
回答1:

这是PreparedStatement的用法,sql字符串中包含问号(?),这些问号标明变量的位置,然后提供变量的值,最后执行语句,例如:
stringsql = "select * from people p where p.id = ? and p.name = ?";
preparedstatement ps = connection.preparestatement(sql);
ps.setint(1,id);
ps.setstring(2,name);
resultset rs = ps.executequery();
使用preparedstatement的另一个优点是字符串不是动态创建的。下面是一个动态创建字符串的例子:
stringsql = "select * from people p where p.i = "+id;

回答2:

代表parameter. 如果你运行,数据库会问你要问号的值,只有在输入值后才能查询

回答3:

这个是一个参数