十三、关于MyBatis使用的综合练习

1 环境准备

1.1 构建数据库环境

建数据库——> 建数据表

1.2 JavaWeb开发环境

  1. web目录下拷入前端界面
  2. web\WEB-INF\lib目录下加入需要的jar包
  3. src下放入配置文件log4j.properties和SqlMapConfig.xml
  4. src下建包:pojo、web、service、mapper、utils
  5. utils包下:自定义Mybatis框架的工具类:提供工厂对象和释放资源
  6. web包下:构建Servlet,处理客户端的页面请求和将数据处理响应给客户端

2 查询操作(查询是基础)

增删改都依赖查询,增删改执行完之后最后都需要查询一次给用户反馈结果。

2.1 无条件查询所有数据(queryAll)

  1. Client端:写index.jsp,浏览器默认访问的界面,点击权限列表按钮,请求访问queryAll对应的Servlet
  2. web:声明queryAll方法:分析:转发List交给Client端显示数据,数据由service传入。
  3. service:声明queryAll方法:分析:无参,返回List交给web层。数据由实现mapper接口,执行SQL,获得(采用动态代理方式)。
  4. mapper:声明接口方法queryAll:分析:无参,返回List。
  5. 编写mapper的xml配置文件,编写sql语句查询
  6. 回到service:用自定义的Mybatis框架的工具类,获得SqlSessionFactory对象,建立sqlSession,代理出mapper接口的实现类,执行queryAll查询方法,获得数据。提交事务,关闭事务。
  7. 回到web层:建立service层对象,调用service的queryAll方法,获得数据,存储在request域对象,转发页面permission.jsp
  8. Client页面端:在转发页面的页面中解析域对象存储的数据显示

2.2 多条件查询(queryByWhere)

在queryAll之后,我们可以使用多条件查询,筛选出我们需要的数据。

  1. Client端:在Permission.jsp(显示所有页面的基础上),form标签内,发送新的请求给Servlet,执行多条件查询queryByWhere。
  2. web:声明queryByWhere方法:分析:获取Client传入的2个参数(多条件查询的条件),构造模糊查询,封装进pojo对象中,作为参数传给service(便于查询,而且不用传很多参数)
    tips:获得界面传来的参数,在控制台打印发现是乱码:用过滤器Filter来解决乱码问题,在传给service层
  3. service:声明queryByWhere方法:有参(web层传来的封装了查询条件的对象),有返回(返给web的结果集)
  4. mapper:声明queryByWhere接口方法:分析:有参、有返回值
  5. 编写mapper的xml配置文件,编写sql语句查询
  6. 回到service层:同无条件查询
  7. 回到web层:同无条件查询
  8. Client页面端:同无条件查询

3 增加操作

点击新增按钮会跳转到addPermission.jsp 界面

  1. Client界面端:form表单中提交请求给Servlet处理
  2. web、service、mapper基本同上
  3. 注意最后web中还需要执行queryAll方法,显示给用户增加后的页面效果

4 修改操作

修改包括两个功能:数据回显(用户根据之前的数据对比修改)和修改

4.1 回显

  1. Client界面端:用户点击修改按钮,发送请求queryById和当前id值,传给后台的Servlet
  2. web:将作为参数id传给service的queryById方法
  3. service:查询
  4. mapper:定义queryById接口方法
  5. 编写mapper的xml配置文件:根据id写SQL语句查询
  6. 回到web:request域存储查询的对象,并转发到更新界面updatePermission.jsp,
  7. Client界面端:updatePermission.jsp中获取request域对象信息,显示

4.2 修改

  1. Client界面端:用户在updatePermission.jsp中修改了数据,点击提交按钮,form标签,发送Servlet请求updatePermission
  2. web:updatePermission方法处理请求
  3. 省略(同上)

4.3 删除

  1. Client界面:点击删除按钮,调用JS的函数(确认删除吗),js函数delPermission(id)传递主键,给Servlet获取要删除的记录
  2. 以下省略(同上)

5 分页

5.1 分页条件

分页需要什么数据:

  1. 来自客户端:当前页
  2. 来自服务端:每页显示条数,总页数、总条数、显示的list数据

5.2 分页流程

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个非常具有挑战性的项目,需要综合运用前后端技术和数据库知识,下面是我的一些建议和设计说明: 一、项目需求 1. 游戏功能:实现一款简单的游戏,例如俄罗斯方块,通过前端页面展示游戏画面,后端实现游戏逻辑和得分计算等功能。 2. 论坛功能:实现用户注册、登录、发帖、回帖等论坛基本功能,通过前端页面展示帖子列表、帖子详情和用户信息等内容。 3. 答题功能:实现一套简单的题库系统,通过前端页面展示题目和用户答题情况,后端实现题目管理和答案校验等功能。 4. 综合学习C语言:提供一些基础的C语言学习资料和练习题,通过前端页面展示内容和用户答题情况,后端实现资料管理和答案校验等功能。 二、技术选型 1. 前端技术:Vue.js、Element UI、Axios等。 2. 后端技术:Spring Boot、MyBatis、MySQL等。 3. 开发工具:Visual Studio Code、Postman等。 三、系统架构 1. 前端架构:采用Vue.js作为前端框架,通过Element UI实现页面布局和组件,使用Axios实现前端与后端的数据交互。 2. 后端架构:采用Spring Boot作为后端框架,通过MyBatis实现数据持久化和数据库交互,使用Spring Security实现用户认证和授权。 3. 数据库设计:采用MySQL作为数据库,设计用户表、帖子表、回帖表、题目表、答案表等。 四、开发流程 1. 前端开发:先设计好前端页面和组件,然后通过Axios获取后端数据,并实现前端与后端的交互逻辑。 2. 后端开发:先设计好后端API接口,然后通过MyBatis实现数据持久化和数据库交互,最后实现用户认证和授权等功能。 3. 联调测试:前后端分别进行单元测试和集成测试,并通过Postman等工具进行接口测试和调试。 4. 部署上线:前后端代码打包发布到服务器上,通过Nginx等工具实现反向代理和负载均衡等功能,最后上线运行。 五、总结 这个项目涉及了多个功能模块和技术点,需要开发人员具备较强的前后端技能和系统设计能力。同时,需要注意系统安全和性能优化等方面的问题,保证系统的稳定性和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值