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進行設計吧,現在的網站設計都會是用到。