1、DAO模式 分包:依次建立

entity:实体包,放的是跟oracle数据库中表结构相对应的对象的属性,也就是这个对象有什么

dao:增删改查接口,实现增删改查的具体方法

service:同dao,也是一个接口,一个接口的实现类,方法什么的都跟dao差不多

servlet:新建servlet类,继承HttpServlet类,一个方法建立一个servlet类,根据不同的方法选择使用doGet()、doPost()方法 、services()既包含doGet 又包含doPost

新建jsp页面

这些都是新建web项目

2、save方法,对应sql语句insert into

数据原型是干啥使的,当用户要存入一条新纪录时,用户在jsp页面输入,在servlet获得,存入实体对象,调用service层的save方法,service层再return给dao层

,再往数据库插入

3、update更新数据方法跟add差不多。比add还要简单多了,直接拿到id调用update方法,就会返回一个完整的实体对象,把实体对象存到作用域,转发给edit.jsp;

不同点:在jsp页面需要回填数据到表单    用el表达式


分页查询功能

java中万物皆对象,在util包中新建个pageBean对象,包含pageIndex页号、List  results 查询结果集、rowCount总行数/pageSize每页行数=pageCount总页数

在dao层写接口。也叫find方法,传参pageIndex页号(在servlet层给出初始值,在jsp层需要用户传入)、pageSize每页行数(在servlet层给规定每页显示几个)、  模糊查询搜索字段名(表中的)(需要用户给)

写实现类。先连接数据库,先执行查询所有记录数的sql语句,得到总页数与首尾行号

如果为true则再执行分页的sql语句,从结果集中取出来封装到book实体类,再封装pageBean对象

dao层负责想方设法从数据库得到数据;servlet层负责从jsp拿到数据,转发或重定向到jsp

下面来说说servlet层:先考虑是doGet还是doPost,doGet是想查询数据,搜索框,所以得先解决中文乱码,先设pageIndex=1,pageSize=2,判断浏览器是否传页号

a、数据分页查询

b、数据分页显示

复习步骤先从数据库开始,sql语句,jdbc将java程序与数据库连接起来,可以使java程序操作数据库中的数据

由底层开始,层层往上,最后一直到jsp显示层

1、sql语句

count()聚合函数    计总行数

row_number() over (partition by deptno order by sal desc)分区子句按部门编号分区,把查询结果分为不同的组,类似于group by;排序子句,将每个分区排序。为查询结果分配行号

order by desc 降序/ asc 升序 默认

select * from  book  查询book表中 的所有列

select 结果分配行号,book表中的所有列 from book where title like ?

select row_number() over (order by id desc) as rn,book表中的所有列 from book  b where title like ?

列名起别名是as 名字   表名起别名 是直接名字即可

把表中所有列查询结果都分配行号,id降序,模糊查询

select t.*
from(select  ROW_NUMBER() OVER(order by id desc) as rn,b.*
        from book  b
        where title like '%a%') t
where t.rn between 2 and 14;

按照查询条件把我想要的所有行显示出来了,但是我想分页显示,就要设置每一页显示的首尾行号,这样就能确保每一页准确无误的显示了

查询步骤

1、先获得符合查询条件的总行数

select count(*) as count from Book where title like '%a%';

把sql语句where like 查询条件变成一个搜索栏,新建一个pageBean对象用来显示分页情况

先和数据库建立连接,执行sql语句,得到总行数,求出总页数,pageIndex 和pageSize servlet层会先给个默认值的

设置每页首尾行号

2、再执行一次sql语句

开始分页了

从数据库里把数据取出来(结果集)DAO----->Entity放到对象中啊,集合中啊         service层返回DAO层           service----->servlet<-----jsp

3、servlet层

在list页面调用分页查询方法

因为需要用户传参,所以就得先做非空判断

在servlet层,只要转发就写的是xxx.jsp

只要重定向就是“list”  response.sendRedirect("list");

4、index.jsp

搜索栏

URL开头的斜线总结

1.在HTML标签中设置src属性、href属性时
开头的"/"代表服务器根目录(web-apps)   Tomcat目录结构,web应用发布目录

2.在配置Servlet或进行转发时
开头的"/"代表项目的WebRoot目录

3.在重定向时,开头的"/"代表服务器根目录(web-apps)

转发重定向时的路径问题:

转发时的路径,基本都是xxx.jsp页面,因为有数据要转发到页面然后显示给用户看

重定向时路径有两种情况:a.退出登陆直接重定向到login.jsp页面;注册成功后重定向到login.jsp页面;路径都是同一级的

b.登陆成功后要访问后台background/list;添加成功后要

web项目总结——通过jsp+servlet实现对oracle的增删改查功能的更多相关文章

  1. JSP+Servlet+JavaBean实现数据库的增删改查

    基本思想:JSP文件显示页面,使用form或href超链接传值到Servlet中方法,在Servlet方法中调用Dao层的类对象,实现对数据库里的数据的增删改查,之后重新返回到JSP输出操作完的结果. ...

  2. Android 利用xUtils框架实现对sqllite的增删改查

    首先下载xUtils,下载地址:https://github.com/wyouflf/xUtils  把下载好的文件压缩,把里面的jar包拷进项目中如图所示: 这里新建一个User类进行测试增删改查 ...

  3. Javaweb实现对mongodb的增删改查(附带源代码)

    运行截图: 删除后的信息 项目源代码:https://www.cnblogs.com/post/readauth?url=/zyt-bg/p/9807396.html

  4. 在Salesforce中实现对Object的增删改查操作

    1): Insert Statement    http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#CSHID=ap ...

  5. 实现对sqlite数据库增删改查

    package com.example.db.dao;import java.util.ArrayList;import java.util.List;import android.content.C ...

  6. Java实现对cookie的增删改查

    原文地址:http://blog.csdn.net/k21325/article/details/54377830 @RequestMapping(value="meeting/addGua ...

  7. mvc模式jsp+servel+dbutils oracle基本增删改查demo

    mvc模式jsp+servel+dbutils oracle基本增删改查demo 下载地址

  8. mvc模式jsp+servel+jdbc oracle基本增删改查demo

    mvc模式jsp+servel+jdbc oracle基本增删改查demo 下载地址

  9. python web.py操作mysql数据库,实现对数据库的增删改查操作

    使用web.py框架,实现对mysql数据库的增删改查操作: 该示例代码中连接的是本地数据库testdb,user表,表结构比较简单,只有两个字段:mobile和passwd,类型均为字符型 实际应用 ...

随机推荐

  1. 安装ionic出现node-sass无法下载的解决方法

    解决方法: 修改C:\users\[用户名]下的.npmrc文件: registry=https://registry.npm.taobao.org sass-binary-site=https:// ...

  2. Web自动化测试工具调研

    背景 Web自动化测试越来越被重视, 因为现在Web已经是工程化的状态. 如何通过工具测试, 保证Web开发的质量,提升开发效率,是Web工具的诞生的来由. Web测试分为以下几个方面: 1. 界面测 ...

  3. 灵活运用SQL Server SSIS变量

    在SSIS开发ETL(Extract-Transform-Load),数据抽取.转换.装载的过程.我们需要自己定义变量 一.SSIS变量简介 SSIS(SQL Server Integration S ...

  4. 无题 MVC

    1. MVC 里controller 返回匿名类型, 在View里是访问不了匿名类型的字段,因为它是Internal Private, 必须定义强类型 2. 扩展view的方法 public stat ...

  5. OEIS A140358

    以前也许做过? 有点方 最小整数1到k 加减得到 n 1+-2+-3+-...+-k = n 求最小k #include <cstdio> #include <algorithm&g ...

  6. Excel 同时打开2个或多个独立窗口

    首先win7版本点击[开始]菜单,在输入框里面输入"regedit.exe"打开注册表     然后定位找到该路径HKEY_CLASSES_ROOT \ Excel.Sheet.1 ...

  7. C# 文件压缩加解密

    1.这种方式也可以做到对文件的加密压缩,解密解压缩,只是在压缩和解压缩时会出现压缩窗口 1.1加密压缩 strzipPath:压缩包路径 strtxtPath:待压缩的文件路径 password:加密 ...

  8. Windows Phone 五、配置存储

    基本存储形式 本地设置:ApplicationData.Current.LocalSettings 漫游设置:ApplicationData.Current.RoamingSettings 支持的数据 ...

  9. Unreleased Resource(未释放资源)-Streams(流)

    java中把不同的输入/输出源(键盘.文件.网络连接等)抽象表现为Stream(流). java程序可以通过使用不同的流来访问不同的输入/输出源.而Stream(流)可以直观的理解为从数据的源(Sou ...

  10. 安装Oracle问题总结

    Oracle安装很多次,这次是最郁闷. 第一次安装失败,考虑可能是软件问题(以往学生给的软件),重新从官网下载 快下载完时,360清理电脑垃圾空间,手残,关闭浏览器,又开始重新下载 下载的同时,我开始 ...