比如语句是:
SELECT * FROM TABLE WHERE ID=? AND CLASS=? AND NAME=?
但是在检索的时候,并不强制要求输入,可能我只输入姓名“张三”,ID 和CLASS留空,这么一来检索语句就变成了:
SELECT * FROM TABLE WHERE ID='' AND CLASS='' AND NAME='张三'
就不符合我想要的检索结果了,如果非要用preparedStatement,该怎么做呢?
------解决方案--------------------
"SELECT * FROM TABLE WHERE 1=1 ? ? ? "
ps.set(1,"AND NAME='张三'") ;
ps.set(2,"") ;
ps.set(3,"") ;
------解决方案--------------------
ps.setNull(2);
------解决方案--------------------
ps.setNull(1,java.sql.Type.Integer);
ps.setNull(2,java.sql.Type.Integer);
------解决方案--------------------
置空~
------解决方案--------------------
ps.setString(2, null);
ps.setNull(2, Types.NUMERIC);
------解决方案--------------------
同意