A. jsp+servlet+ajax实现多条件实时查询
ajax可以通过一个简单的按钮触发,就是你的查询按钮!剩下的就是ajax的内容了
B. JSP页面,如何对4个条件条件进行sql语句查询,可能查询一条,二条和任意组合查询、如何操作
你好,
把四个值传递到后台,拼接sql时先判断条件值有没有,如果有就添加sql条件,如果没有就不拼接。
一般都是这么做的。
希望能帮到你。
C. jsp怎么查询数据库内容
你用的什么开发工具啊!
<%@ page
language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
%>
<%@page import="java.sql.*"%>
<center>
<H1> <font color="blue" size="12">管理中心</font></H1>
<HR />
<table width="80%" border="1">
<tr>
<th>ID</th>
<th>书名</th>
<th>作者</th>
<th>价格</th>
<th>删除</th>
</tr>
<%
// 数据库的名字
String dbName = "zap";
// 登录数据库的用户名
String username = "sa";
// 登录数据库的密码
String password = "123";
// 数据库的IP地址,本机可以用 localhost 或者 127.0.0.1
String host = "127.0.0.1";
// 数据库的端口,一般不会修改,默认为1433
int port = 1433;
String connectionUrl = "jdbc:sqlserver://" + host + ":" + port + ";databaseName=" + dbName + ";user=" + username
+ ";password=" + password;
//
//声明需要使用的资源
// 数据库连接,记得用完了一定要关闭
Connection con = null;
// Statement 记得用完了一定要关闭
Statement stmt = null;
// 结果集,记得用完了一定要关闭
ResultSet rs = null;
try {
// 注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 获得一个数据库连接
con = DriverManager.getConnection(connectionUrl);
String SQL = "SELECT * from note";
// 创建查询
stmt = con.createStatement();
// 执行查询,拿到结果集
rs = stmt.executeQuery(SQL);
while (rs.next()) {
%>
<tr>
<td>
<%=rs.getInt(1)%>
</td>
<td>
<a href="prepareupdate?ID=<%=rs.getInt("ID")%>" target="_blank"><%=rs.getString(2)%></a>
</td>
<td>
<%=rs.getString(3)%>
</td>
<td>
<%=rs.getString(4)%>
</td>
<td>
<a href="delete?ID=<%=rs.getInt("ID")%>" target="_blank">删除</a>
</td>
</tr>
<%
}
} catch (Exception e) {
// 捕获并显示异常
e.printStackTrace();
} finally {
// 关闭我们使用过的资源
if (rs != null)
try {
rs.close();
} catch (Exception e) {}
if (stmt != null)
try {
stmt.close();
} catch (Exception e) {}
if (con != null)
try {
con.close();
} catch (Exception e) {}
}
%>
</table>
<a href="insert.jsp">添加新纪录</a>
</center>
我其中的一个数据库查询界面。
D. jsp 多条件查询。
你可以这样 , 将表单提交到另外一个jsp中 然后就可以通过request.getpar...来获取表单中的值,处理完后在返回到这个jsp.
E. jsp如何实现多种条件查询
你可以把查询条件写在一个实体类里面。在执行查询的时候进行sql拼接的方式过滤查询条件。例如:查询 jsp页面上面有 用户名[uname],年龄[age],性别[sex] 这些查询内容,填写什么查什么的话,你就可以建一个 User实体类 里面包含这些字段 然后写sql :
StringBuffer sb =new StringBuffer("select * from user u");
User user=UserDao.User();
Boolean flag=false;
if(null!=user.getAge()&&""!=user.getAge()){
sb.append(" where u.name= "+user.getAge());
flag=true;
}
if(null!=user.getAge()&&""!=user.getAge()){
if(flag){
sb.append( and u.age= "+user.getAge());
}else
sb.append(" where u.age= "+user.getAge());
flag=true;
}
if(null!=user.getSex()&&""!=user.getSex()){
if(flag){
sb.append(" and u.sex= "+user.getSex());
}else
sb.append(" where u.sex= "+user.getSex());
flag=true;
}
实现思路还有很多 ,不过你要用hibernate来实现的话会更简单,你可以到网上查查。。。
希望可以帮到你,谢谢
}
F. jsp如何在DAO层中的类里写多条件查询的方法
只穿页数?那就是固定了一页多少条吧?
你看看参考资料,它是用了在jsp页面上直接分页,你可以把他思想拿过来然后封装成类
你是用list分页的话我建议你不要那样,如果数据到了一定程度就会很慢的。
最好是用存储过程分页
下面这个可以参考一下
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_show]') and OBJECTPROPERTY(id, N'IsProcere') = 1)
drop procere [dbo].[p_show]
GO
CREATE Proc p_show
@QueryStr nvarchar(4000), --表名、视图名、查询语句
@PageSize int=10, --每页的大小(行数)
@PageCurrent int=1, --要显示的页
@FdShow nvarchar (4000)='', --要显示的字段列表,如果查询结果有标识字段,需要指定此值,且不包含标识字段
@FdOrder nvarchar (1000)='' --排序字段列表
as
declare @FdName nvarchar(250) --表中的主键或表、临时表中的标识列名
,@Id1 varchar(20),@Id2 varchar(20) --开始和结束的记录号
,@Obj_ID int --对象ID
--表中有复合主键的处理
declare @strfd nvarchar(2000) --复合主键列表
,@strjoin nvarchar(4000) --连接字段
,@strwhere nvarchar(2000) --查询条件
select @Obj_ID=object_id(@QueryStr)
,@FdShow=case isnull(@FdShow,'') when '' then ' *' else ' '+@FdShow end
,@FdOrder=case isnull(@FdOrder,'') when '' then '' else ' order by '+@FdOrder end
,@QueryStr=case when @Obj_ID is not null then ' '+@QueryStr else ' ('+@QueryStr+') a' end
--如果显示第一页,可以直接用top来完成
if @PageCurrent=1
begin
select @Id1=cast(@PageSize as varchar(20))
exec('select top '+@Id1+@FdShow+' from '+@QueryStr+@FdOrder)
return
end
--如果是表,则检查表中是否有标识更或主键
if @Obj_ID is not null and objectproperty(@Obj_ID,'IsTable')=1
begin
select @Id1=cast(@PageSize as varchar(20))
,@Id2=cast((@PageCurrent-1)*@PageSize as varchar(20))
select @FdName=name from syscolumns where id=@Obj_ID and status=0x80
if @@rowcount=0 --如果表中无标识列,则检查表中是否有主键
begin
if not exists(select 1 from sysobjects where parent_obj=@Obj_ID and xtype='PK')
goto lbusetemp --如果表中无主键,则用临时表处理
select @FdName=name from syscolumns where id=@Obj_ID and colid in(
select colid from sysindexkeys where @Obj_ID=id and indid in(
select indid from sysindexes where @Obj_ID=id and name in(
select name from sysobjects where xtype='PK' and parent_obj=@Obj_ID
)))
if @@rowcount>1 --检查表中的主键是否为复合主键
begin
select @strfd='',@strjoin='',@strwhere=''
select @strfd=@strfd+',['+name+']'
,@strjoin=@strjoin+' and a.['+name+']=b.['+name+']'
,@strwhere=@strwhere+' and b.['+name+'] is null'
from syscolumns where id=@Obj_ID and colid in(
select colid from sysindexkeys where @Obj_ID=id and indid in(
select indid from sysindexes where @Obj_ID=id and name in(
select name from sysobjects where xtype='PK' and parent_obj=@Obj_ID
)))
select @strfd=substring(@strfd,2,2000)
,@strjoin=substring(@strjoin,5,4000)
,@strwhere=substring(@strwhere,5,4000)
goto lbusepk
end
end
end
else
goto lbusetemp
/*--使用标识列或主键为单一字段的处理方法--*/
lbuseidentity:
exec('select top '+@Id1+@FdShow+' from '+@QueryStr
+' where '+@FdName+' not in(select top '
+@Id2+' '+@FdName+' from '+@QueryStr+@FdOrder
+')'+@FdOrder
)
return
/*--表中有复合主键的处理方法--*/
lbusepk:
exec('select '+@FdShow+' from(select top '+@Id1+' a.* from
(select top 100 percent * from '+@QueryStr+@FdOrder+') a
left join (select top '+@Id2+' '+@strfd+'
from '+@QueryStr+@FdOrder+') b on '+@strjoin+'
where '+@strwhere+') a'
)
return
/*--用临时表处理的方法--*/
lbusetemp:
select @FdName='[ID_'+cast(newid() as varchar(40))+']'
,@Id1=cast(@PageSize*(@PageCurrent-1) as varchar(20))
,@Id2=cast(@PageSize*@PageCurrent-1 as varchar(20))
exec('select '+@FdName+'=identity(int,0,1),'+@FdShow+'
into #tb from'+@QueryStr+@FdOrder+'
select '+@FdShow+' from #tb where '+@FdName+' between '
+@Id1+' and '+@Id2
)
GO
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
G. jsp中如何用sql语句实现多重条件的搜索
你是指动根据条件动态生成SQL语句吧,这个网上叫SQL模板。如:
StringBuffer SqlBase = new StringBuffer("select * from table");
String courseNo = request.getParameter("courseNo");
......
//然后
void addCondition(StringBuffer sb,String colName,String val) {
if(val != null && !val.equals("") {
if(sb.indexOf("where") == -1) {
sb.append(" where " + colName + "=" + val);
} else {
sb.append(" and " + colName + "=" + val);
}
}
}
H. jsp多条件查询问题,请高手指点迷津!
一般是用select * from table where 1=1 and ……
1=1是一个条件为真的值 and后面就加上你要查询的条件,如果是多个就就多and几次
比如这是我以前写的一段
String sql="select * from book where 1=1;
if(bookID!=0)
sql=sql+" and bookID="+bookID;
if(!bookName.equals(""))
sql=sql+ " and bookname like '%"+bookName+"%'";
if(!author.equals(""))
sql=sql+" and author like '%"+author+"%'";
if(bookStatus!=2)
sql = sql +" and status="+bookStatus;
I. 求一个简单的jsp多条件查询类似下图mysql数据库表分上下页显示模板源码(最主要是按时间查询)
你的sql语句有问题,两个时间中间和and之间没有空格,时间前后没加单引号
“select * from b_user where a_time between '”+datea+"' and '"+dateb+"' order by id desc limit "
另外,活用控制台,报什么错你也不发出来。
J. JSP怎么实现多条件模糊搜索
//import org.hibernate.Criteria;你说的功能用hibernate实现起来比较方便
下面是代码:
Criteria criteria = session.createCriteria(CardSaleRecord.class);
//CardSaleRecord也就是你想查询的表所对应得实体类,但是要在映射文件中配置
//创建别名,可不要
criteria.createAlias("cityCode", "c");
criteria.createAlias("proctCode", "p");
//从页面中获取来的模糊查询的条件
Date fromDate = cardSaleFormBean.getYearMonth();
Date toDate = cardSaleFormBean.getTimeSpan();
String cityCode = cardSaleFormBean.getCityCode().getCityCode();
String proctCode = cardSaleFormBean.getProctCode().getProctCode();
String status = cardSaleFormBean.getSelectAuditStatus();
//根据条件是否为空,是否在sql语句中增加约束条件
if(null!=fromDate){
criteria.add(Restrictions.gt("saleDate", fromDate));
}
if(null!=toDate){
criteria.add(Restrictions.lt("saleDate", toDate));
}
if(!"default".equals(cityCode)){
criteria.add(Restrictions.eq("c.cityCode", cityCode));
}
if(!"default".equals(proctCode)){
criteria.add(Restrictions.eq("p.proctCode", proctCode));
}
if(!"default".equals(status)){
criteria.add(Restrictions.eq("checkStatus", status));
}
//返回结果
return criteria.list();
既然是网站上用的,那就选择struts spring hibernate进行设计吧,现在的网站设计都会是用到。