如何从页面中输入SQL语句的查询条件(就是下面的 01001,01002...等): 
select * from tblTest where id in(01001,01002,01003,01004)
代码如下:<%@ page contentType="text/html;charset=GBK" language="java" errorPage="./error.jsp" %>
<%@ page import="java.sql.*,java.util.*,java.io.*,com.zwqk.*" %><html>
<head>
</head> <body>

<% 
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=zwqk"; String user = "sa";
String password = ""; Connection conn = DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql = "select * from tblTest where id in(01001,01002,01003,01004)"; ResultSet rst = stmt.executeQuery(sql); while(rst.next())
{
%>
......
......
......
<%
}
rst.close();
stmt.close();
conn.close();
%>

</div>

</body>
</html>

解决方案 »

  1.   

    说的详细一点,是不是把页面中的文件框里的值传给sql语句中的in()里?
      

  2.   

    1:表单接收
    2:写dao方法
    3:调dao方法传参():如:dao.in(request.getparm("11"),request.getpram("22"))
      

  3.   

    根据页面选中的记录,把那些记录封装成hashtablekey 和 value
    无所谓是key还是value放你要的数据,就是01001,01002,01003,01004了然后在BM中拼凑成 where id in(01001,01002,01003,01004)";
    作为一个string传给DAO,如果没有选择的话这个String就是空的
      

  4.   

    PreparedStatement ps = conn.prepareStatement(“INSERT INTO BOOKLIST" +
    "(AUTHOR, TITLE, ISBN) VALUES (?, ?, ?)”);
    ps.setString(1, “Zamiatin, Evgenii”);
    ps.setString(2, “We”);
    ps.setLong(3, 0140185852);
      

  5.   

    request.getParameter("xx");怎么不可以啊然后转换
      

  6.   

    拼接SQL语句不可以吗?
    得到传递的参数值,然后生成你需要的SQL语句
    比如
    String ids = request.getParameter("ids");
    String sql = "Insert Into your_table Values (" + ids + ")";
      

  7.   

    thumb3344(祖国啊,我只是一个摆地摊的!) ( ) 信誉:98  2006-01-07 21:57:00  得分: 0  
    PreparedStatement ps = conn.prepareStatement(“INSERT INTO BOOKLIST" +
    "(AUTHOR, TITLE, ISBN) VALUES (?, ?, ?)”);
    ps.setString(1, “Zamiatin, Evgenii”);
    ps.setString(2, “We”);
    ps.setLong(3, 0140185852);
      
    -----------------
    我也比较喜欢这种方法
      

  8.   

    用PreparedStatement好,效能和安全性都比Statement更好,尤其是大量数据做批处理是更能显示出来
      

  9.   

    你应该将连接代码写在BEAN里,不应该写在JSP里面。
    好好学学基础吧。
      

  10.   

    我也认为应该写在BEAN,分层处理
    至于楼上说的存储过程,比较好
    老大
    你应该充分利用数据库
    不然~~~~~~~~~~~~~~~~~
      

  11.   

    如何从页面中输入SQL语句的查询条件(就是下面的 01001,01002...等):?
    老大的意思是什么?根据页面选中的记录来做
      

  12.   

    to:shan_wei(拉丁情人) 
    是把页面中的文件框里的值传给sql语句中的in()里
      

  13.   

    初学者与WAP页面可在JSP里面直接写逻辑,用表单接收查询条件.
      

  14.   

    回楼主的问题,我想了这样一个办法,如果你的页面的文本框是这样的格式(假设把01001,01002,01003,01004称为条件1、2、3、4......):
    条件1:___01001___;//这个文本框为<input name='condition' type='text' value="">
    条件2:___01002___;//这个文本框的<input name='condition' type='text' value="">
    条件3:___01003___;//这个文本框的<input name='condition' type='text' value="">
    条件4:___01004___;//这个文本框的<input name='condition' type='text' value="">
    ......
    条件n:___0100n___;//这个文本框的<input name='condition' type='text' value="">
    有几个条件就设几个文本框,它们的name全是condition.那么你就在你的bean里这样写:
    String[] conditions = request.getParameterValues("condition ");
    String temp = "";
    if(conditions == null || conditions.equals("null") || conditions.length <= 0) {
       //此处做你想要的处理
    }
    else{
      for (int i = 0; i < conditions.length; i++) {
          temp += "," + conditions[i];
       }
       temp = temp.substring(1, temp.length());
    }//此处的目的就是把所有的文本框中的内容加起来形成"01001,01002,01003,01004"这样的格式,然后你把这temp传到你的in()中。
    以上是一样方法,页面中会有很多的文本框,处理时相对麻烦,但是用户喜欢这样,因为易懂。
    还有一种方法就是只有一个文本框:
    条件:__01001,01002,01003,01004___;
    让用户自己添逗号,这样用户可能不太习惯,但是处理相对简单些,在bean中只写:
    String conditions = request.getParameter("condition ");
    就可以了,当然还得做一些除错处理,比如说用户忘了写逗号。
      

  15.   

    非常感谢:shan_wei(拉丁情人) 
      

  16.   

    to:shan_wei(拉丁情人)
    我试了你的方法,可不出效果呀
      

  17.   

    yxxcrtd(无所谓) 你要向服务器提交本页面呀,不然怎么getParameter
      

  18.   

    根据页面选中的记录,把那些记录封装成hashtablekey 和 value
    无所谓是key还是value放你要的数据,就是01001,01002,01003,01004了然后在BM中拼凑成 where id in(01001,01002,01003,01004)";
    作为一个string传给DAO,如果没有选择的话这个String就是空的
      

  19.   

    最简单的方法就是拼串了
    param 记录条件值
    select * from tblTest where id in('+ param +')