四 SpringBoot - 整合Mybatis,逆向工程,JPA( 二 )

2.3.1.2 实现类@Servicepublic class AirQualityServiceImpl implements AirQualityService {@Autowired(required = false)private AirQualityMapper airQualityMapper;@Overridepublic List<AirQuality> getQualityListByExample(AirQualityExample airQualityExample) {return airQualityMapper.selectByExample(airQualityExample);}}2.3.1 测试代码@GetMapping("/airQualities")public List<AirQuality> testAirQualityListUseBackward(){log.info("------ 根据 查询条件,查询空气质量的列表 --------");//创建查询条件对象AirQualityExample airQualityExample = new AirQualityExample();//如果需要去重,增加条件airQualityExample.setDistinct(true);//如果需要排序,增加排序条件airQualityExample.setOrderByClause(" id desc ");//添加自定义查询 条件,监测站名称中包含检测的AirQualityExample.Criteria criteria =airQualityExample.createCriteria();//criteria.andMonitorStationLike("%"+monitorStation+"%");criteria.andMonitorStationLike("%监测%");//区域编号 大于1//criteria.andDidGreaterThan(1);//区域编号在指定列表中//criteria.andDidIn(Arrays.asList(1,2,3,4,5));//增加or的查询条件AirQualityExample.Criteria criteriaOr =airQualityExample.createCriteria();criteriaOr.andPm10GreaterThan(100);//拼接or的查询条件airQualityExample.or(criteriaOr);//如果需要分页,增加分页参数 limit ${offset}, ${limit}//起始行 (偏移量参数)airQualityExample.setOffset(2l);//返回数据量airQualityExample.setLimit(5);//调用业务接口,查询空气质量列表List<AirQuality> qualityListByExample = airQualityService.getQualityListByExample(airQualityExample);return qualityListByExample;}2.3.2 测试结果:

四 SpringBoot  - 整合Mybatis,逆向工程,JPA

文章插图
2.4 分析查询条件对象2.4.1 基本查询条件
四 SpringBoot  - 整合Mybatis,逆向工程,JPA

文章插图
2.4.2 字段上的查询条件
四 SpringBoot  - 整合Mybatis,逆向工程,JPA

文章插图
2.5 分析 创建 xxxExample.Criteria自定义查询条件protected List<Criteria> oredCriteria;//oredCriteria 是一个 Criteria 的 集合//创建条件类 方法public Criteria createCriteria() {Criteria criteria = createCriteriaInternal();if (oredCriteria.size() == 0) {oredCriteria.add(criteria); // 创建第一个Criteria的时候会自动加入集合中}return criteria;}//or 拼接 条件 方法public void or(Criteria criteria) {oredCriteria.add(criteria); //其他Criteria 条件,调用方法拼接时 也会 动加入集合中}3、JPA3.1 JPA 配置# jpa 核心配置spring:jpa:show-sql: true # 显示sql查询hibernate:ddl-auto: update #如果不存在,就新建,如果存在只更新3.2 测试3.2.1 实体 bean3.2.1.1 实体类注意:
1、如果数据库没有该表会自动生成该表;
2、如果该表已经存在,也需要填写这些注解信息,要不然会出现实体跟数据库不对应的错误;
@Data@Entity@Table(name = "air_user",catalog = "kh96_ssm_airms")//指定jpa建表的表名,如果指定,默认使用类名作为表名,catalog是指定数据库实例名public class AirUser {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Integer id;//用户名@Column(name = "name",length = 32)private String name;//密码@Column(name = "pwd",length = 32)private String pwd;//手机号@Column(name = "tel",length = 11)private String tel;}3.2.1.2 生成的表启动项目;
四 SpringBoot  - 整合Mybatis,逆向工程,JPA

文章插图
3.2.2 AirUserRepositorypublic interface AirUserRepository extends JpaRepository<AirUser,Integer> {}3.2.3 service3.2.3.1 接口public interface AirUserService {//@description : 根据用户编号,查询用户详情AirUser getAirUserById(Integer id);}

经验总结扩展阅读