表单提交后,用你的java代码取得各个输入框的输入关键字,假设为String类型的key1,key2. 你的处理代码就应该是如下: KEY1 KEY2是你的表中对应条件的列名,key1 key2是用户输入的条件。 只演示了两个条件的情况,请楼主自己对照修改 String sql=""; if(key1.equals("")&&key2.equals("")) sql="select * from tablename"; else if(key1.equals("")) sql="select * from tablename where KEY2='"+key2+"'"; else if(key2.equals("")) sql="select * from talbename where KEY1='"+kry1+"'"; else sql="select * from tablename where KEY1='"+key1+"' and KEY2='"+key2+"'";
String sql="select * from tablename where 1=1"; if(!key1.equals("")) sql=sql + " and KEY1='"+key1+"'"; if(!key2.equals("")) sql=sql + " and KEY2='"+key2+"'"; if(!key3.equals("")) sql=sql + " and KEY3='"+key3+"'";
就是预编译statement,PreparedStatement
����ʹ��PreparedStatementԤ�ȱ����sql������ String sql="select * from xx where id = ?";
晕,都是乱码 -- 预制查询 就是使用PreparedStatement预先编译sql。 比如:String sql="select * from xx where id = ?";
你的处理代码就应该是如下:
KEY1 KEY2是你的表中对应条件的列名,key1 key2是用户输入的条件。
只演示了两个条件的情况,请楼主自己对照修改
String sql="";
if(key1.equals("")&&key2.equals(""))
sql="select * from tablename";
else if(key1.equals(""))
sql="select * from tablename where KEY2='"+key2+"'";
else if(key2.equals(""))
sql="select * from talbename where KEY1='"+kry1+"'";
else
sql="select * from tablename where KEY1='"+key1+"' and KEY2='"+key2+"'";
if(!key1.equals(""))
sql=sql + " and KEY1='"+key1+"'";
if(!key2.equals(""))
sql=sql + " and KEY2='"+key2+"'";
if(!key3.equals(""))
sql=sql + " and KEY3='"+key3+"'";
String sql="select * from xx where id = ?";
--
预制查询 就是使用PreparedStatement预先编译sql。
比如:String sql="select * from xx where id = ?";
用StringBuffer