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

本文介绍使用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 分页流程

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值