• web项目总结——通过jsp+servlet实现对oracle的增删改查功能


    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 rnbook表中的所有列 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;添加成功后要

  • 相关阅读:
    【总结整理】javascript的函数在if中调用时是否加括号---与.net的不同之处
    【总结整理】javascript的函数调用时是否加括号
    【总结整理】JavaScript的DOM事件学习(慕课网)
    关于overflow:hidden (转)
    CSS
    HTML
    jQuery
    函数
    装饰器
    python的条件与循环1
  • 原文地址:https://www.cnblogs.com/Angelinas/p/5357100.html
Copyright © 2020-2023  润新知