day03

day03_第1张图片

主要讲解四点:

1、SpringDataJpa原理及查询和修改操作(理解原理,能说出来,会用)

2、datagrid使用及分析(会用)

3、收派标准分页列表查询实现及修改功能(重点)

4、快递员添加、分页列表查询、Specification实现分页列表带条件查询(重点)

一、SpringDataJpa原理分析和基本API(重点)

1、Spring Data    

Spring Data 出现就是为了简化、统一持久层的各种实现技术API

Spring Data 提供一套标准API和不同持久层整合技术实现

day03_第2张图片 2、spring-data-commons与spring-data-jpa

spring-data-commons 一套标准API

spring-data-jpa 基于整合jpa实现

day03_第3张图片

自己开发Repository只需要继承JpaRepository接口

CrudRepository

save、delete、deleteAll、findAll、findOne、count

PagingAndSortingRepository

findAll(Sort) 基于排序的查询、findAll(Pageable)基于分页的查询

day03_第4张图片

二、SpringDataJpa查询Query的使用(会用)

第一种:根据方法命名规则自动生成

基于一列等值查询 findBy列名 例如:findByName(String name)

// 根据收派标准名称查询

public List findByName(String name);

基于一列模糊查询findBy列名Like 例如:findByNameLike(String name)

基于两列等值查询findBy列名And列名 例如:findByUsernameAndPassword(String username,String password)

第二种:不按命名规则写的查询方法,可以配置@Query绑定JPQL语句或者SQL语句

@Query(value="from Standard where name = ?" ,nativeQuery=false)

    // nativeQuery 为 false 配置JPQL,在这里其实就是写HQL 、 为true 配置SQL

    public List queryName(String name);

第三种:不按命名规则写的查询方法,配置@Query,没写语句,实体类@NamedQuery定义

@Query

    public List queryName2(String name);

@NamedQueries({

    @NamedQuery(name="Standard.queryName2",query="from Standard where name=?")

})

三、SpringDataJpa修改操作Query使用(会用)

@Query注解完成,搭配使用@Modifying标记修改、删除操作

@Query(value="update Standard set min·Length=?2 where id =?1")问号后数代表参数占位符

@Modifying

publicvoid updateMinLength(Integer id , Integer minLength);

Junit单元测试,要添加事务,设置事务不回滚

@Test

@Transactional

@Rollback(false)

publicvoid testUpdate(){

standardRepository.updateMinLength(1, 3);

}

四、数据表格datagrid简单使用(会用)

1、table指定id="grid"

2、$("#grid").datagrid({…}); 完成对表格设置    

columns:表格列定义

url:远程数据加载

pagination:true显示分页栏datagrid底        

toolbar:顶部工具栏

参照10.html

五、数据表格datagrid分页原理分析(理解)

page size

请求数据:page页码、rows每页记录数(每页显示几条数据)

响应数据:total:总记录数、rows当前页数据记录

day03_第5张图片

 

  1. 收派标准分页列表查询实现(能实现)

  1. 修改standard.html数据表格url参数

day03_第6张图片

2、在StandardAction添加pageQuery方法,页面会自动发送两个请求参数page页码和 rows每页记录数

Action代码:

pom.xml导入json插件

day03_第7张图片

业务层代码

实现代码

Spring data jpa提供分页查询方法,接受Pageable参数

day03_第8张图片

Spring data提供PageRequest对象实现Pageable接口

注意PageRequest的page页面从0开始所以要page-1

七、收派标准修改功能实现(能实现)

1、点击修改按钮,获取datagrid选中的一行数据

2、将选中数据回显form表单

使用jquery easyui 提供form对象

day03_第9张图片

提供隐藏字段 (id隐藏,用于传参数)

day03_第10张图片

八、第三天主要内容概述

1、快递员管理,依赖收派标准选择(多表关联插入)

2、快递员分页列表查询

3、区域批量数据导入 Excel读写工具 Apache POI、文件上传

4、基于条件分页查询功能实现Spring Data JPA 条件分页查询

九、添加快递员加载收派标准列表(能实现)

1、快递员管理功能介绍

快递员添加功能思路:

1)jQuery Easyui Window窗口

2)jQuery Easyui form 客户端表单验证

3)Spring Data JPA 提供save方法

2、收派标准列表显示

1)input控件

url获取列表数据、textField 显示内容字段名、valueField生成选项value属性依据字段名

2)编写StandardAction提供findAll方法

day03_第11张图片

3)编写业务层方法

十、添加快递员服务器功能实现(能实现)

快递员添加功能(多表操作)介绍

  1. 检验表单的输入元素name字段是否与实体类属性字段一致
  2. 需要对快递员添加表单,设置action和method

3、使用jQuery easyui的form校验功能

day03_第12张图片

  1. 编写CourierAction添加save方法

    day03_第13张图片

  2. 编写业务层代码实现

    day03_第14张图片

6、编写DAO业务接口

十一、快递员无条件分页查询实现(能实现)

  1. 实现思路:

    1)datagrid在页面加载后,会自动向url地址发送一次请求

    传递参数page当前页码和rows每页显示的记录数到服务器

    1. spring data提供Pageable对象(PageRequest)接收两个参数
    2.     调用spring data中Page findAll(Pageable)方法查询总记录数和当前页数据

        4)将Page中数据封装自定义Map集合total和rows转换json返回客户端

2、实现步骤:

        1)修改courier.html中的datagrid url地址

day03_第15张图片

        2)编写CourierAction中的pageQuery方法

day03_第16张图片

        day03_第17张图片

        3)编写业务层实现

分析:需不需要加载集合对象,@JSON注解排除不需要加载属性

十二、快递员条件分页查询请求参数提交(能实现)

1、制作查询按钮,点击按钮显示快递员查询表单(窗口)

day03_第18张图片

2、将查询窗口条件,绑定到数据表格上,让数据表格在发送请求时,自动携带条件

查询jquery easyui datagrid 数据表格api

1)先将页面form表单数据,转换{key:value,key:value}格式

查看jquery

day03_第19张图片

2)基于自定义方法,完成将form参数转换为json绑定到datagrid上

day03_第20张图片

3)查询条件和分页查询参数一起发送给服务器端

day03_第21张图片

十三、使用Specification实现条件分页查询(能实现)

day03_第22张图片

day03_第23张图片

思路:

  1. 获取请求参数
  2. 封装在Java类 Predicate
  3. 拼凑成SQL语句 select * from my_table where name=? and age=? and …
  4. 定义Java类封装请求参数的规则,表达式

3、修改CourierAction的pageQuery方法,添加条件查询逻辑操作         day03_第24张图片

day03_第25张图片

day03_第26张图片

4、修改Service代码

day03_第27张图片

实现

5、修改DAO接口,继承JpaSpecificationExecutor接口

JpaSpecificationExecutor接口

day03_第28张图片

Specification接口对象:条件查询对象

Pageable接口对象:代表分页查询对象

你可能感兴趣的:(day03)