postgresql 查询问题

cloumn=“name”;

uid=""20160820173746006721;


String sql="SELECT "+cloumn+" FROM p_users where uid='"+uid+"' and state='1' limit 1";

User ps =User.dao.findFirst(sql);

一切正常。


换成如下方式:

String sql="SELECT ? FROM p_users where uid=? and state='1' limit 1";

User ps =User.dao.findFirst(sql,cloumn,uid);


结果变成:

{"?column?": "name"}    请问什么原因,如何解决




评论区

JFinal

2016-08-26 17:33

jdbc 的问号占位符,只能用于 where 后面的查询条件,例如 where a=? and b=? or c=?,不能用于 select、order by、limit 等其它地方

canx

2016-08-26 17:53

谢谢,已验证。
还有个问题,自定义类型的参数也不行是吧
sql="insert into p_user_logs(gid,uid,gtype,apitoken,geom,x,y) "
+ "values(?,?,?,?,ST_GeomFromText('POINT(? ?)', 4326),?,?)";

int r=Db.update(sql,gid,uid,gtype,token,x,y,x,y);


这个地方也过不去:
ST_GeomFromText('POINT(? ?)', 4326)
只能先用字符串拼接好

热门反馈

扫码入社