之前写过一篇JSP+Servlet+javabean+mysql实现页面多条件模糊查询 使用的是mysql进行的分页查询,mysql用limit控制,而oracle则是用rownum,今天第一次写oracle,查了一下资料试了一下,把代码帖出来
oracle的数据源配置也不同:
driverName=oracle.jdbc.driver.OracleDriver
url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl
username=marketManager
pwd=marketManager
直接帖实现类(特别注意红色代码体):
package pb.market.com.cn.dao.impl; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import pb.market.com.cn.dao.ProviderDao;
import pb.market.com.cn.pojo.Provider;
import pb.market.com.cn.util.BaseDao; public class ProviderDaoImpl extends BaseDao implements ProviderDao { //获取供应商列表
public List<Provider> getProviderList(int pageNo, int pageSize, String where) {
List<Provider> providerList =new ArrayList<Provider>();
String sql="select * from ( select rownum as r,a.* from gongyingshang a where "+where+" rownum<=? ) where r>?";
Object[] params ={pageSize*pageNo,(pageNo-1)*pageSize};
if(this.getConnection()){
System.out.println(sql);
ResultSet rs = this.executeQuery(sql, params);
try {
while(rs.next()){
Provider provider = new Provider();
provider.setId(rs.getInt("id"));
provider.setGysno(rs.getInt("gysno"));
provider.setGysname(rs.getString("gysname"));
provider.setGystel(rs.getString("gystel"));
provider.setGysfax(rs.getString("gysfax"));
provider.setCreatedate(rs.getTimestamp("createdate"));
provider.setCreateby(rs.getString("createby"));
provider.setModifydate(rs.getTimestamp("modifydate"));
provider.setModifyby(rs.getString("modifyby"));
providerList.add(provider); }
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeConnection();
}
}
return providerList;
}
/*public static void main(String[] args) { ProviderDao dd=new ProviderDaoImpl();
String where="金";
String where1="gysname like '%"+where+"%' and";
List<Provider> providerList =dd.getProviderList(1, 5, where1); for (Provider provider : providerList) {
System.out.println("11111111111111");
System.out.println(provider.getId());
} }*/ //获取供应商总数量
public int getProviderCount(String where) {
int count=0;
String sql="select count(*)as count from gongyingshang "+where;
Object[] params={};
if(this.getConnection()){
ResultSet rs =this.executeQuery(sql, params);
try {
if(rs.next()){
count = rs.getInt("count");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeConnection();
}
}
return count;
}
}
中间的service实现类,我的业务较简单,service层基本不做什么,只是调用一下dao层实现类的方法而已:
package pb.market.com.cn.service.impl; import java.util.List; import pb.market.com.cn.dao.ProviderDao;
import pb.market.com.cn.dao.impl.ProviderDaoImpl;
import pb.market.com.cn.pojo.Provider;
import pb.market.com.cn.service.ProviderService; public class ProviderServiceImpl implements ProviderService {
private ProviderDao providerDao;
public ProviderServiceImpl(){
providerDao=new ProviderDaoImpl();
}
public List<Provider> getProviderList(int pageNo, int pageSize, String where) {
return providerDao.getProviderList(pageNo, pageSize, where);
}
public int getProviderCount(String where) {
return providerDao.getProviderCount(where);
} }
servlet:
package pb.market.com.cn.servlet; import java.io.IOException;
import java.io.PrintWriter;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import pb.market.com.cn.pojo.Provider;
import pb.market.com.cn.service.ProviderService;
import pb.market.com.cn.service.impl.ProviderServiceImpl; public class ProviderListServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
ProviderService providerService =new ProviderServiceImpl();
StringBuffer sb =new StringBuffer(1024);
StringBuffer sb1 =new StringBuffer(1024);
//获取模糊查询的值
String where = request.getParameter("proName");
//System.out.println("where================="+where);
//如果为空
if(where!=null && !"".equals(where)){
sb.append("where gysname like '%"+where+"%'");
sb1.append("gysname like '%"+where+"%' and");
}
//设置每页显示3条
int pageSize=3;
//得总条数
int totalCount =providerService.getProviderCount(sb.toString()); //得到总页数,如果总页数对一页的量取模==0,则。。。
int totalPageCount=0;
if((totalCount%pageSize)==0){
totalPageCount=totalCount/pageSize;
}else{
totalPageCount=totalCount/pageSize +1;
}
//获取当前页,默认一打开进来即是第1页
String pageIndex = request.getParameter("pageIndex");
//System.out.println("pageIndex==============="+pageIndex);
int currentPageNo=0;
if(pageIndex==null){
currentPageNo=1;
}else{
//System.out.println("这里怎么可能进得来???????????");
currentPageNo= Integer.parseInt(pageIndex);
} // 首页和尾页的异常控制
if (currentPageNo <= 0) {
currentPageNo = 1;
} else if (currentPageNo > totalPageCount) {
currentPageNo = totalPageCount;
}
//把各个页码传给JSp
request.setAttribute("pageSize", pageSize);
request.setAttribute("totalCount", totalCount);
request.setAttribute("totalPageCount", totalPageCount);
request.setAttribute("currentPageNo", currentPageNo);
//获取providerList
List<Provider> providerList = providerService.getProviderList(currentPageNo, pageSize, sb1.toString());
request.setAttribute("providerList", providerList);
request.getRequestDispatcher("/jsp/providerList.jsp").forward(request, response); }catch(Exception e){
e.printStackTrace();
} } public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response); } }
后面的JSP页面我就省略不写了。。。。。跟文头说的那篇mysql流程是一样,写法也类似
JSP+Servlet+javabean+oracle实现页面多条件模糊查询的更多相关文章
-
JSP+Servlet+javabean+mysql实现页面多条件模糊查询
需求: 一般列表页上面会有一个查询框,有各种的查询条件组合,一般都采用模糊查询方式 ,以下以自己做的实例来说明一下实现方法: 需要实现的界面原型:要满足条件: 1.单选分类,点GO按扭 2.单独输入标 ...
-
深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)
在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...
-
JSP中使用的模式——JSP+Servlet+JavaBean
上一篇博文写到模式一:JSP+JavaBean 链接地址:http://wxmimperio.coding.io/?p=155 JSP中两种模式的总结 链接地址:http://wxmimperio.c ...
-
MVC jsp+servlet+javabean 连接Mysql数据库測试demo
本文介绍的是怎样使用MVC架构去实现jsp+servlet+javabean连接数据库 首先我们应该了解什么是MVC: MVC包含三个部分 : ①View:由各种JSP页面组成. ②Controlle ...
-
jsp+servlet+javabean开发web项目
一.介绍: 项目依赖包:jdbc数据库包 jsp+servlet+javabean开发web项目,是最接近web项目原生运行原理的. 但是,jsp内容混乱,项目结构复杂时,代码会混乱 二.运行原理: ...
-
(jsp+servlet+javabean )MVC架构
MVC是三个单词的缩写,这三个单词分别为:模型.视图和控制. 使用的MVC的目的:在于将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如Windows系统资源管理器文件夹内容的显示方 ...
-
Jsp+Servlet+JavaBean经典MVC模式理解
MVC模式目的(实现Web系统的职能分工). 在Java EE中,Jsp+Servlet+JavaBean算是里面经典的模式,是初学者必备的知识技能.M, Model(模型)实现系统的业务逻辑 1.通 ...
-
asp下实现多条件模糊查询SQL语句
常写一个简单的模糊查询的SQL语句格式可以如下例: sql="select * from 表名 where 字段名 like ’%" & request.form(&quo ...
-
ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架 ...
随机推荐
-
利用浏览器LocalStorage缓存图片,视频文件
文章路径:https://hacks.mozilla.org/2012/02/saving-images-and-files-in-localstorage/
-
WPF学习之路(七)应用程序和窗口
手动创建应用程序 1.创建Empty Project 2.添加引用 3.添加 ManualApp.cs 并添加下面的代码 [STAThread] public static void Main() { ...
-
redis 不能持久化问题 MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk.
转载自:http://www.cnblogs.com/anny-1980/p/4582674.html kombu.exceptions.OperationalError: MISCONF Redis ...
-
PHP开发常见问题解决列表
1. 学习Zend Framework tutorial过程中的问题 (1)执行"zf create project zf-tutorial"出现如下错误: '"php. ...
-
深入浅出之Smarty模板引擎工作机制(一)
深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解. ...
-
C#线程应用实例(part1) 之 BeginInvoke和EndInvoke
最近这个公司是做 winfrom 开发的 , 这段时间就好好的学学WCF , 公司框架什么的自己去琢磨! 这里主要写一些 winfrom 中 用到的一些陌生 技术 1.BeginInvoke 以前B ...
-
angular1.5 Components
如今前端界angular react vue三大框架并驾齐驱,其中有一个共同点就是组件化开发,这也符合w3c 推行Web Components的趋势.现如今不懂组件化开发的前端绝对不是好厨子.跳槽新公 ...
-
mysql全日志添加时间戳以及SQL多行问题处理(更新)
需求引入 在日常运维中,DBA可能经常会查看某个Query_Id对应哪些SQL,例如追查大事务问题:也可能业务端需要查看某时间端内所有SQL. 然而mysql在输入全日志的时候没有在每行SQL前打印时 ...
-
QLineEdit拾遗:数据的过滤、验证和补全
QLineEdit是使用频率最高的控件之一,当我们想获取用户输入时自然而然得会用到它. 通常我们会将QLineEdit的信号或其他控件的信号绑定至槽函数,然后获取并处理编辑器内的数据.你会觉得我们拿到 ...
-
Oracle DataGuard 11g 双机实验
|操作系统 | release 6.7 | release 6.7 | |主机名 | stuaapp01 | stuaapp02 ||IP | 192.168.20.234 | 192.168.20. ...