增删改查文档

embedded/2024/12/5 3:12:08/

列表 :

列表包含 :

模糊查找 + 分页

列表jsp页面 : 

一 :导入外部文件

(举例 : 用户点进来就可以看到菜单,这是预加载属于,使用文档就绪函数实现)

二 : body 上

① : 文档就绪函数 ${ function()

      //获取条件查询的字段

//组装对象

//调用文档就绪函数

}

② : 封装ajax方法{

 $.ajax({

  1. 请求路径
  2. 请求方法
  3. 数据传递
  4. 解析
  5. 成功回调函数
  1. 打印
  2. 因为有分页添加分页

let arr = res.data; //首页
let prevPage = res.prevPage; //上一页
let nextPage = res.nextPage; //下一页
let totalPage = res.totalPage; //尾页

3.清空表

4.追加表头

5.使用循环追加数据

     (因为有分页 用上面的arr)

for (let x of arr)

  1. 在循环外面追加分页按钮 colspan居中

<td colspan="100">
<input type="button" value="首页" οnclick="doPage(1)">

  1. 失败回调函数{

      给出提示

}

})

}

body 中间

三 : 搜索框 inp

四 : 搜索按钮 button

五 : 列表 table

六 : body 下写脚本 script

  1. 给搜索按钮绑定一个点击事件{

    //获取条件查询的字段

//组装对象

//调用文档就绪函数

}

  1. 分页 给分页写一个function方法{

    //获取条件查询的字段

//组装对象

//调用文档就绪函数

    //多加一个pageNum

}

Controller:

一 : @WebServlet("/menu/*")

MenuVo menuVo = JSONObject.parseObject(reqInfos, MenuVo.class);
//将转换后的对象传给Service
PageResult<MenuVo> list= service.menuList(menuVo);
//将转换后的结果响应给用户
resp.getWriter().println(JSONObject.toJSONString(list));

//调用到层方法获取所有数据
List<MenuVo> list = dao.menuList(menuVo);
//调用到层方法,获取总条数
int count = dao.getCount(menuVo);
//Integer pageNum, Integer totalNum, Integer pageSize, List<T> data
PageResult<MenuVo> menuVoPageResult = new PageResult<>(menuVo.getPageNum(), count, menuVo.getPageSize(), list);
return menuVoPageResult;

二 : ser {

全局变量

  1. 接参
  2. 将json对象转换成java对象
  3. 将转换后的对象传给service
  4. 将处理后的结果响应给用户

}

Service:

① : 调用dao层方法获取所有数据 (参数放vo类的)

List<MenuVo> list = dao.menuList(menuVo);

② : 定义总条数的方法

int count = dao.getCount(menuVo);

③ : 点进去分页工具类  调用方法 (将参数粘过来对着写) 得到返回值

④ : 返回返回值

Dao:

一 : 1.定义sql语句 :

  • 根据名字模糊查找
  • 打印sql语句
  • 分页sql语句

    sql+=" limit ?,?";

  • 分页公式 : 起始下标 = (当前页数 - 1)*条数

int index=(menuVo.getPageNum()-1)*menuVo.getPageSize();

  • 分页公式

处理返回结果

添加 :

添加Jsp页面:

一 :导入外部文件

(举例 : 用户点进来就可以看到菜单,这是预加载属于,使用文档就绪函数实现)

二 : body 上

① : 文档就绪函数 ${ function()

//调用下拉框的function方法

//关闭异步

}

② : 封装ajax方法{

 $.ajax({

  1. 请求路径
  2. 请求方法
  3. 数据传递
  4. 解析
  5. 成功回调函数{

① : 打印

② : 循环追加数据{

   //追加数据 :

1.是下拉框的数据

2.头追的是外键的ID

3.value : 外键的ID

4.option中间方法的是 外键的名字

for (let x of res) {
     //追加数据
     $("#typeId").append(`
     <option value="\${x.typeId}">\${x.typeName}</option>

  1. 失败回调函数 {  给出提示 }

三 : body 中间

  1. 添加文本框

文本框用 : text  下拉框 : <select> <option>

下拉框的ID给的是主表里外键的字段 追加的是外键的主键和外面的名称字段

下俩框示例 : 类型ID: <select id="typeId">
            <option value="">请选择</option>
           </select><br>

图片实例 :

上传图片: <img src="" alt="" width="35" height="35" id="imgUrl">
        <input type="file" id="file" onchange="showImg(this)">

  1. 添加的按钮
  2. Body下面写 <script>

   ①先给图片绑定点击事件

  1. 获取选中图片的路径
  2. 创建文件阅读器
  3. 读取文件图片路径
  4. 加载给src内容给service赋值{
  5. 给图片赋值

}

图片绑定事件案例

function showImg(obj) {
     //获取选中图片的路径(和绑定事件里的实参使用一个单词)          加载图片内容给Service赋值
     let file = obj.files[0];
     //创建文件阅读器
     let reader = new FileReader();
     //读取图片路径
     reader.readAsDataURL(file);
     //加载src内容给Service赋值
     reader.onload=function () {
        //给图片赋值
        $("#imgUrl").attr("src",reader.result)
     }
}

  1. 给添加按钮绑定单击事件

  ①将res的路径给imgUrl  添加的点击事件里.ajax外

  ②创建formDate对象

  ③获取选中的图片

  ④将图片放到创建的formData中

  ⑤图片的ajax{

在成功回调函数里:将res的路径给imgUrl

}

   ⑥取值 (添加框字段的值)

   ⑦非空校验

   ⑧组装对象

   ⑨添加的ajax{

在成功回调函数里:添加后跳转list.jsp}

FileController

一 : 上传图片的方法 (上传图片单词 : upload)

①调用图片方法

②将处理后的结果响应给用户

上传图片示例 :

protected void upload(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //调用图片方法
    String image = UploadUtil.uploadImage(req, resp);
    //将处理后的结果响应给用户
    resp.getWriter().println(JSONObject.toJSONString(image));
}

二:展示图片方法 showIng

①传参

②使用工具类调用方法

展示图片方法示例 :

protected void showImg(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //传参
    String imgUrl = req.getParameter("imgUrl");
    //使用工具类调用方法
    UploadUtil.showImg(imgUrl,resp);
}

Controller :

上传图片的方法 : upload

1.调用工具类图片方法

2.响应

展示图片的方法 :showImg

3.传参

4.使用工具类调用方法

添加方法 {

  1. 接参
  2. 将json对象转换成Java对象
  3. 将转换后的对象传给service
  4. 处理返回值(返200)

}

Service :

①不需要显示的字段设置默认值

        ②调用dao层方法 没有返回值直接走

Dao :

  • : 定义sql
  • : 执行sql

修改 :

删除 :


http://www.ppmy.cn/embedded/143069.html

相关文章

两个用来刷新Windows环境变量让会话即时生效的刷新脚本分享

环境变量刷新脚本&#xff1a;RefreshEnv.bat 和 RefreshEnv.ps1 在Windows系统中,环境变量对于程序的正常运行至关重要。当安装新软件或修改系统设置后,环境变量可能会发生变化,但这些变化通常需要重启命令提示符或PowerShell会话才能生效。为了解决这个问题,我们提供了两个脚…

Qt 面试题复习10~12_2024-12-2

Qt 面试题 28、Qt 如果一个信号的处理方法一直未被执行有哪些可能性29、Qt 三大核心机制30、虚函数表31、什么是Qt事件循环 &#xff1f;32、纯虚函数和普通的虚函数有什么区别33、Qt 的样式表是什么&#xff1f;34、描述Qt的TCP通讯流程35、自定义控件流程36、什么是Qt的插件机…

Elasticsearch 进阶

核心概念 索引(Index) 一个索引就是一个拥有几分相似特征的文档的集合。比如说&#xff0c;你可以有一个客户数据的索引&#xff0c;另一个产品目录的索引&#xff0c;还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母)&#xff0c;并且当我们要对这个索…

早鸟票开启:2025年计算机应用、图像处理与视觉算法国际学术会议(CAIPVA2025)

#学术会议早知道##早鸟价优惠# 2025年计算机应用、图像处理与视觉算法国际学术会议&#xff08;CAIPVA2025&#xff09; 2025 International Conference on Computer Applications, Image Processing, and Vision Algorithms 重要信息 会议地点&#xff1a;中国昆明 会议时…

Java 单例模式:深度解析与应用

在软件开发领域&#xff0c;设计模式是解决常见设计问题的有效方案&#xff0c;而单例模式作为创建型设计模式中的一员&#xff0c;其重要性不容小觑。它能够确保一个类仅有一个实例&#xff0c;并提供全局访问点&#xff0c;这一特性在资源管理、配置信息读取、线程池管理以及…

数据结构:链表进阶

链表进阶 1. ArrayList的缺陷2. 链表2.1 链表的概念及结构2.2 链表的实现 3.链表面试题4.LinkedList的使用5.1 什么是LinkedList4.2 LinkedList的使用 5. ArrayList和LinkedList的区别 1. ArrayList的缺陷 通过源码知道&#xff0c;ArrayList底层使用数组来存储元素&#xff1…

CentOS7 虚拟机 双网卡绑定

一、网卡绑定模式 模式类型特点mode0round-robin&#xff08;平衡轮询策略&#xff09;基于per packet方式&#xff0c;轮询往每条链路发送报文。提供负载均衡和容错的能力&#xff0c;当有链路出问题&#xff0c;会把流量切换到正常的链路上。交换机端需要配置聚合口。mode1a…

Linux,如何将文件从一台服务器传到另一台服务器上

摘要 将文件从一台服务器上传到另一台服务器上用到了scp命令。 scp&#xff08;Secure Copy Protocol&#xff09;命令用于在本地和远程主机之间或两个远程主机之间安全地复制文件或目录。它基于SSH协议&#xff0c;因此文件传输过程中会进行加密。以下是scp命令的详细解释及…