文章目录
1 环境准备
1.1 构建数据库环境
建数据库——> 建数据表
1.2 JavaWeb开发环境
- web目录下拷入前端界面
- web\WEB-INF\lib目录下加入需要的jar包
- src下放入配置文件log4j.properties和SqlMapConfig.xml
- src下建包:pojo、web、service、mapper、utils
- utils包下:自定义Mybatis框架的工具类:提供工厂对象和释放资源
- web包下:构建Servlet,处理客户端的页面请求和将数据处理响应给客户端
2 查询操作(查询是基础)
增删改都依赖查询,增删改执行完之后最后都需要查询一次给用户反馈结果。
2.1 无条件查询所有数据(queryAll)
- Client端:写index.jsp,浏览器默认访问的界面,点击权限列表按钮,请求访问queryAll对应的Servlet
- web:声明queryAll方法:分析:转发List交给Client端显示数据,数据由service传入。
- service:声明queryAll方法:分析:无参,返回List交给web层。数据由实现mapper接口,执行SQL,获得(采用动态代理方式)。
- mapper:声明接口方法queryAll:分析:无参,返回List。
- 编写mapper的xml配置文件,编写sql语句查询
- 回到service:用自定义的Mybatis框架的工具类,获得SqlSessionFactory对象,建立sqlSession,代理出mapper接口的实现类,执行queryAll查询方法,获得数据。提交事务,关闭事务。
- 回到web层:建立service层对象,调用service的queryAll方法,获得数据,存储在request域对象,转发页面permission.jsp
- Client页面端:在转发页面的页面中解析域对象存储的数据显示
2.2 多条件查询(queryByWhere)
在queryAll之后,我们可以使用多条件查询,筛选出我们需要的数据。
- Client端:在Permission.jsp(显示所有页面的基础上),form标签内,发送新的请求给Servlet,执行多条件查询queryByWhere。
- web:声明queryByWhere方法:分析:获取Client传入的2个参数(多条件查询的条件),构造模糊查询,封装进pojo对象中,作为参数传给service(便于查询,而且不用传很多参数)
tips:获得界面传来的参数,在控制台打印发现是乱码:用过滤器Filter来解决乱码问题,在传给service层 - service:声明queryByWhere方法:有参(web层传来的封装了查询条件的对象),有返回(返给web的结果集)
- mapper:声明queryByWhere接口方法:分析:有参、有返回值
- 编写mapper的xml配置文件,编写sql语句查询
- 回到service层:同无条件查询
- 回到web层:同无条件查询
- Client页面端:同无条件查询
3 增加操作
点击新增按钮会跳转到addPermission.jsp 界面
- Client界面端:form表单中提交请求给Servlet处理
- web、service、mapper基本同上
- 注意最后web中还需要执行queryAll方法,显示给用户增加后的页面效果
4 修改操作
修改包括两个功能:数据回显(用户根据之前的数据对比修改)和修改
4.1 回显
- Client界面端:用户点击修改按钮,发送请求queryById和当前id值,传给后台的Servlet
- web:将作为参数id传给service的queryById方法
- service:查询
- mapper:定义queryById接口方法
- 编写mapper的xml配置文件:根据id写SQL语句查询
- 回到web:request域存储查询的对象,并转发到更新界面updatePermission.jsp,
- Client界面端:updatePermission.jsp中获取request域对象信息,显示
4.2 修改
- Client界面端:用户在updatePermission.jsp中修改了数据,点击提交按钮,form标签,发送Servlet请求updatePermission
- web:updatePermission方法处理请求
- 省略(同上)
4.3 删除
- Client界面:点击删除按钮,调用JS的函数(确认删除吗),js函数delPermission(id)传递主键,给Servlet获取要删除的记录
- 以下省略(同上)
5 分页
5.1 分页条件
分页需要什么数据:
- 来自客户端:当前页
- 来自服务端:每页显示条数,总页数、总条数、显示的list数据