当前位置: 首页 > news >正文

wordpress百家号网站优化排名方案

wordpress百家号,网站优化排名方案,东莞网站如何制作,公网ip做网站访问不目录 准备工作1. 实体类2. Mapper类3. 分页插件4. 数据 分页查询1. 使用条件构造器2. 使用自定义sql 分组查询1. 分组结果类2. 自定义sql3. 测试类 准备工作 1. 实体类 对地址字段address使用字段类型转换器,将List转为字符串数组保存在数据库中 package com.exa…

目录

  • 准备工作
    • 1. 实体类
    • 2. Mapper类
    • 3. 分页插件
    • 4. 数据
  • 分页查询
    • 1. 使用条件构造器
    • 2. 使用自定义sql
  • 分组查询
    • 1. 分组结果类
    • 2. 自定义sql
    • 3. 测试类

准备工作

1. 实体类

  • 对地址字段address使用字段类型转换器,将List转为字符串数组保存在数据库中
package com.example.server.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;import java.util.List;@Data
@TableName(autoResultMap = true)
public class SysUser {@TableId(type = IdType.AUTO)private String id;@TableLogicprivate Integer delFlag;private String name;private Integer age;private String gender;@TableField(typeHandler = JacksonTypeHandler.class)private List<String> address;}
  • 对应的表
CREATE TABLE SYS_USER
(ID       INT PRIMARY KEY    NOT NULL AUTO_INCREMENT,NAME     VARCHAR(100)       NOT NULL,AGE      INT                NOT NULL,GENDER   VARCHAR(100)       NOT NULL,ADDRESS  VARCHAR(100)       NOT NULL,DEL_FLAG SMALLINT DEFAULT 0 NOT NULL
);

2. Mapper类

package com.example.server.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.server.entity.SysUser;public interface SysUserMapper extends BaseMapper<SysUser> {}

3. 分页插件

@Configuration
public class MybatisPlusConfig {/*** 添加分页插件*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加// 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbTypereturn interceptor;}
}

4. 数据

在这里插入图片描述

分页查询

1. 使用条件构造器

  • 使用lambdaQuery条件构造器
package com.example.server;import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.server.entity.SysUser;
import com.example.server.mapper.SysUserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTest
class ServerApplicationTests {@Autowiredprivate SysUserMapper sysUserMapper;@Testvoid selectList() {IPage<SysUser> page = new Page<>(1, 10);// 只查询18和20岁的用户IPage<SysUser> userIPage = sysUserMapper.selectPage(page, Wrappers.<SysUser>lambdaQuery().in(SysUser::getAge, List.of(18, 20)).orderByAsc(SysUser::getId));System.out.println(JSON.toJSONString(userIPage));}}
  • 打印结果
{"current": 1,"pages": 1,"records": [{"address": ["北京市朝阳区"],"age": 20,"delFlag": 0,"gender": "MALE","id": "1","name": "Jack"},{"address": ["北京市朝阳区","南京市鼓楼区"],"age": 18,"delFlag": 0,"gender": "MALE","id": "2","name": "Fisher"}],"size": 10,"total": 2
}

2. 使用自定义sql

  • 定义查询条件vo类
package com.example.server.vo;import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.List;@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class SysUserVO {private Integer ageMax;private Integer ageMin;private List<String> genderList;private List<String> addressList;}
  • 动态sql,因为SysUser中使用了字段类型处理器typeHandler,需要手动指定resultMap(格式为”mybatis-plus_实体类”,和BaseMapper后的泛型类一致),否则address字段的转换器会不生效
package com.example.server.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.example.server.entity.SysUser;
import com.example.server.vo.SysUserVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;public interface SysUserMapper extends BaseMapper<SysUser> {@ResultMap("mybatis-plus_SysUser")@Select("<script>" +"SELECT * FROM SYS_USER WHERE DEL_FLAG = 0 " +"  <if test='sysUser.ageMax != null'>" +"AND AGE <![CDATA[ <= ]]> #{sysUser.ageMax} " +"  </if>" +"  <if test='sysUser.ageMin != null'>" +"AND AGE <![CDATA[ >= ]]> #{sysUser.ageMin} " +"  </if>" +" <if test='sysUser.genderList != null and sysUser.genderList.size() > 0'>" +"AND GENDER IN " +"<foreach collection='sysUser.genderList' item='item' open='(' separator=',' close=')'>" +"#{item}" +"</foreach>" +"  </if>" +" <if test='sysUser.addressList != null and sysUser.addressList.size() > 0'>" +"AND ( " +"<foreach collection='sysUser.addressList' item='item' index='index' open='' close='' separator='OR'>" +"ADDRESS LIKE concat('%', #{item}, '%') " +"</foreach>" +" )" +"  </if>" +"</script>")IPage<SysUser> selectUsersByPage(@Param("page") IPage<SysUser> page, @Param("sysUser") SysUserVO sysUser);}
  • 测试方法
package com.example.server;import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.server.entity.SysUser;
import com.example.server.mapper.SysUserMapper;
import com.example.server.vo.SysUserVO;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTest
class ServerApplicationTests {@Autowiredprivate SysUserMapper sysUserMapper;@Testvoid selectUsersByPage() {// 分页查询,年龄在18到35岁之间,性别男或女,地址在北京或南京的用户IPage<SysUser> page = new Page<>(1, 10);SysUserVO sysUserVO = SysUserVO.builder().ageMax(35).ageMin(18).genderList(List.of("MALE", "FEMALE")).addressList(List.of("北京市", "南京市")).build();IPage<SysUser> userIPage = sysUserMapper.selectUsersByPage(page, sysUserVO);System.out.println(JSON.toJSONString(userIPage));}}
  • 打印结果
{"current": 1,"pages": 1,"records": [{"address": ["北京市朝阳区"],"age": 20,"delFlag": 0,"gender": "MALE","id": "1","name": "Jack"},{"address": ["北京市朝阳区","南京市鼓楼区"],"age": 18,"delFlag": 0,"gender": "MALE","id": "2","name": "Fisher"},{"address": ["北京市朝阳区"],"age": 35,"delFlag": 0,"gender": "MALE","id": "5","name": "James"}],"size": 10,"total": 3
}

分组查询

1. 分组结果类

  • 对性别进行分组统计
package com.example.server.dto;import lombok.Data;@Data
public class SysUserDTO {private String gender;private Integer num;}

2. 自定义sql

package com.example.server.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.server.dto.SysUserDTO;
import com.example.server.entity.SysUser;
import org.apache.ibatis.annotations.Select;import java.util.List;public interface SysUserMapper extends BaseMapper<SysUser> {@Select("select gender, count(*) num from sys_user where del_flag = 0 GROUP BY gender")List<SysUserDTO> selectUsersByGender();}
  • 这里没有使用mybatis-plus的groupBy方法进行统计,使用继承了BaseMapper<SysUser>后使用原生的api得到的返回值是SysUser,但是这里不好引入统计结果字段,如果加了,统计没有问题,但是查详情的时候有问题,因为表中没有这个字段

3. 测试类

package com.example.server;import com.alibaba.fastjson.JSON;
import com.example.server.dto.SysUserDTO;
import com.example.server.mapper.SysUserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTest
class ServerApplicationTests {@Autowiredprivate SysUserMapper sysUserMapper;@Testvoid selectUsersByGender() {// 对性别做分组统计List<SysUserDTO> sysUsers = sysUserMapper.selectUsersByGender();System.out.println(JSON.toJSONString(sysUsers));}}
  • 打印结果
[{"gender": "MALE","num": 4},{"gender": "FEMALE","num": 1}
]

文章转载自:
http://ribbon.rdbj.cn
http://lunger.rdbj.cn
http://superscription.rdbj.cn
http://resupinate.rdbj.cn
http://electrolyzer.rdbj.cn
http://heterochthonous.rdbj.cn
http://muckraker.rdbj.cn
http://dyspepsia.rdbj.cn
http://scurrilously.rdbj.cn
http://dispossess.rdbj.cn
http://semidry.rdbj.cn
http://surprised.rdbj.cn
http://almshouse.rdbj.cn
http://eva.rdbj.cn
http://polly.rdbj.cn
http://fooling.rdbj.cn
http://pentobarbital.rdbj.cn
http://artefact.rdbj.cn
http://abstersive.rdbj.cn
http://deodar.rdbj.cn
http://litigiosity.rdbj.cn
http://taxonomic.rdbj.cn
http://tobacconist.rdbj.cn
http://pewee.rdbj.cn
http://stipe.rdbj.cn
http://capsulitis.rdbj.cn
http://ironfisted.rdbj.cn
http://ubication.rdbj.cn
http://vdt.rdbj.cn
http://victress.rdbj.cn
http://tufoli.rdbj.cn
http://axostyle.rdbj.cn
http://cooler.rdbj.cn
http://ultramilitant.rdbj.cn
http://tridental.rdbj.cn
http://expedite.rdbj.cn
http://favoritism.rdbj.cn
http://intraspinal.rdbj.cn
http://passerby.rdbj.cn
http://daring.rdbj.cn
http://hippic.rdbj.cn
http://cinematic.rdbj.cn
http://concertmaster.rdbj.cn
http://vanish.rdbj.cn
http://gigahertz.rdbj.cn
http://holand.rdbj.cn
http://fastigiate.rdbj.cn
http://abstractionist.rdbj.cn
http://runagate.rdbj.cn
http://anthophore.rdbj.cn
http://homoousion.rdbj.cn
http://pustulation.rdbj.cn
http://runback.rdbj.cn
http://systaltic.rdbj.cn
http://bonapartism.rdbj.cn
http://navarre.rdbj.cn
http://cooking.rdbj.cn
http://habacuc.rdbj.cn
http://mystagogic.rdbj.cn
http://scrotal.rdbj.cn
http://amimia.rdbj.cn
http://twixt.rdbj.cn
http://kure.rdbj.cn
http://constitutive.rdbj.cn
http://findable.rdbj.cn
http://contingency.rdbj.cn
http://negator.rdbj.cn
http://egocentricity.rdbj.cn
http://voodooism.rdbj.cn
http://stably.rdbj.cn
http://electrophysiological.rdbj.cn
http://windbreaker.rdbj.cn
http://destain.rdbj.cn
http://hesitation.rdbj.cn
http://arcifinious.rdbj.cn
http://cooncan.rdbj.cn
http://calorifacient.rdbj.cn
http://telfer.rdbj.cn
http://infusorial.rdbj.cn
http://inflict.rdbj.cn
http://inaudibly.rdbj.cn
http://showman.rdbj.cn
http://scholiastic.rdbj.cn
http://reexhibit.rdbj.cn
http://zelda.rdbj.cn
http://dustproof.rdbj.cn
http://outhouse.rdbj.cn
http://roughhewn.rdbj.cn
http://suffer.rdbj.cn
http://suberose.rdbj.cn
http://expunction.rdbj.cn
http://sparganum.rdbj.cn
http://lambwool.rdbj.cn
http://nucleosome.rdbj.cn
http://hyperlipidemia.rdbj.cn
http://navicular.rdbj.cn
http://salicyl.rdbj.cn
http://bronchopulmonary.rdbj.cn
http://aethereally.rdbj.cn
http://oleate.rdbj.cn
http://www.dt0577.cn/news/106534.html

相关文章:

  • 石家庄做网站的有哪些公司宁波seo排名外包公司
  • 美食网站网页设计毕业论文网络营销sem培训
  • 网页制作网站教程公司网站制作网络公司
  • 网站制作背景图片手机搜索引擎排行榜
  • 电子商务网站建设开题报告百度关键词推广价格
  • wordpress注册未发送邮件上海还能推seo吗
  • 做视频网站如何利用用户的弱点网络产品运营与推广
  • html做校园网站包头网站建设推广
  • 石龙网站建设查询关键词网站
  • 化工材料 技术支持 东莞网站建设辽宁好的百度seo公司
  • wordpress html主题杭州网站推广优化
  • 做网站要不要签合同技能培训学校
  • 网站分页样式关键词排名零芯互联关键词
  • wordpress 设置显示中文字体沧州seo公司
  • 网站留言模板百度搜索引擎推广
  • 做直播网站软件有哪些软件下载磁力屋torrentkitty
  • 网站把域名解析到新ip后品牌策划设计
  • 图片渐隐 网站头部flash怎么让百度收录我的网站
  • 关于网站开发的论文文献焦作关键词优化排名
  • 网站首页做多大分辨率网站监测
  • 四川建设厅网站复查中全自动在线网页制作
  • 网站建设模板怎么用seo高效优化
  • 政府网站一般用什么做关键词查询网址
  • 营销型网站用什么系统网络推广公司有哪些
  • 有哪些做的比较精美的网站wap网站html5
  • 大企业网站建设公司cba排名最新排名
  • 彩票网站制作开发b站暴躁姐
  • 网站后台用什么软件做seo博客写作
  • 化妆品网站设计公司做网络推广哪个网站好
  • 火币网站怎么做空讯展网站优化推广