如何输入 SQL 查询条件?

yxxcrtd 2006-01-07 03:41:51
如何从页面中输入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>
...全文
461 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Yang 2006-01-12
  • 打赏
  • 举报
回复
up
hazen 2006-01-12
  • 打赏
  • 举报
回复
最简单的方法就是拼串了
param 记录条件值
select * from tblTest where id in('+ param +')
wangx1949 2006-01-12
  • 打赏
  • 举报
回复
根据页面选中的记录,把那些记录封装成hashtable

key 和 value
无所谓是key还是value放你要的数据,就是01001,01002,01003,01004了

然后在BM中拼凑成 where id in(01001,01002,01003,01004)";
作为一个string传给DAO,如果没有选择的话这个String就是空的
bluelily22 2006-01-11
  • 打赏
  • 举报
回复
yxxcrtd(无所谓)

你要向服务器提交本页面呀,不然怎么getParameter
「已注销」 2006-01-11
  • 打赏
  • 举报
回复
to:shan_wei(拉丁情人)
我试了你的方法,可不出效果呀
青盟日志 2006-01-09
  • 打赏
  • 举报
回复
回楼主的问题,我想了这样一个办法,如果你的页面的文本框是这样的格式(假设把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 ");
就可以了,当然还得做一些除错处理,比如说用户忘了写逗号。
wangx1949 2006-01-09
  • 打赏
  • 举报
回复
初学者与WAP页面可在JSP里面直接写逻辑,用表单接收查询条件.
「已注销」 2006-01-09
  • 打赏
  • 举报
回复
to:shan_wei(拉丁情人)
是把页面中的文件框里的值传给sql语句中的in()里
「已注销」 2006-01-09
  • 打赏
  • 举报
回复
非常感谢:shan_wei(拉丁情人)
wylsx 2006-01-08
  • 打赏
  • 举报
回复
up
studyflex 2006-01-08
  • 打赏
  • 举报
回复
如何从页面中输入SQL语句的查询条件(就是下面的 01001,01002...等):?
老大的意思是什么?

根据页面选中的记录来做
studyflex 2006-01-08
  • 打赏
  • 举报
回复
我也认为应该写在BEAN,分层处理
至于楼上说的存储过程,比较好
老大
你应该充分利用数据库
不然~~~~~~~~~~~~~~~~~
xiaye0908 2006-01-08
  • 打赏
  • 举报
回复
你应该将连接代码写在BEAN里,不应该写在JSP里面。
好好学学基础吧。
Gundam_zero 2006-01-08
  • 打赏
  • 举报
回复
用PreparedStatement好,效能和安全性都比Statement更好,尤其是大量数据做批处理是更能显示出来
yuzl32 2006-01-07
  • 打赏
  • 举报
回复
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);

-----------------
我也比较喜欢这种方法
leeight 2006-01-07
  • 打赏
  • 举报
回复
拼接SQL语句不可以吗?
得到传递的参数值,然后生成你需要的SQL语句
比如
String ids = request.getParameter("ids");
String sql = "Insert Into your_table Values (" + ids + ")";
xiongbing528 2006-01-07
  • 打赏
  • 举报
回复
request.getParameter("xx");怎么不可以啊。。。然后转换
thumb3344 2006-01-07
  • 打赏
  • 举报
回复
PreparedStatement ps = conn.prepareStatement(“INSERT INTO BOOKLIST" +
"(AUTHOR, TITLE, ISBN) VALUES (?, ?, ?)”);
ps.setString(1, “Zamiatin, Evgenii”);
ps.setString(2, “We”);
ps.setLong(3, 0140185852);
zhkchi 2006-01-07
  • 打赏
  • 举报
回复
根据页面选中的记录,把那些记录封装成hashtable

key 和 value
无所谓是key还是value放你要的数据,就是01001,01002,01003,01004了

然后在BM中拼凑成 where id in(01001,01002,01003,01004)";
作为一个string传给DAO,如果没有选择的话这个String就是空的
天天实习 2006-01-07
  • 打赏
  • 举报
回复
1:表单接收
2:写dao方法
3:调dao方法传参():如:dao.in(request.getparm("11"),request.getpram("22"))
加载更多回复(2)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧