谷歌SEO

谷歌SEO

Products

当前位置:首页 > 谷歌SEO >

乐清家政服务公司官网源码是什么?

96SEO 2026-02-23 11:41 0


介绍二、mybatisPlus的基础使用配置BaseMapper的基本CURD增删改查

乐清家政服务公司官网源码是什么?

三、wrapper条件构造器条件构造器wrapper通用API基础条件判断进阶条件判断in、like、between高级条件判断一子查询嵌套查询groupBy

having、order

1mybatisPlus是mybatis的增强工具所以在原本的mybatis中可以使用的语法在mybatisPlus基本上也是可以使用的。

条件构造器Wrapper

mybatisPlus官网https://baomidou.com/

导入依赖

dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-spring-boot3-starter/artifactIdversion3.5.9/version

/dependency

dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId

/dependency

dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.30/version

/dependency配置文件application.properties/yml

spring:datasource:#

jdbc:mysql://localhost:3306/yourdatabase?characterEncodingUTF-8username:

yourpassword

输出sql语句的日志效果就是在每次进行执行sql语句时会输出在控制板中log-impl:

org.apache.ibatis.logging.stdout.StdOutImpl实体类的创建

TableName(value

AUTO当设置此值时并且在数据库中进行设置了主键自增的属性之后则也数据库的自增为主若是数据库没有设置则会报错

ASSIGN_ID默认值经过雪花算法所得的唯一id注意此算法的出来的值因为过大所以一般都会将此id属性类型设置为Long类型

Mapper配置

{}注意这里的User是指你要绑定的表不要设置错了否则就会找不到数据源

在mybatisPlus中提供了一些简单的API来进行实现基本的CURD增删改查具体的使用方法在下面的测试类代码中进行演示

SpringBootTest

User();user.setAge(123);user.setLastName(张三);user.setGender(男);user.setId(1L);/*row为响应的行数*/

int

方法二insertOrUpdate()此方法是更具主键id进行增加或修改若是设置了重复的id值则会执行两条sql语句一条查询一条updateSystem.out.println(userMapper.insertOrUpdate(user));}//

删除Testpublic

id?System.out.println(userMapper.deleteById(1877327132242313222L));

方式二通过map进行删除:map中的key值就是字段名value值就是你想要删除的某个字段的值

sql语句

HashMap();map.put(last_name,张三);System.out.println(map);System.out.println(userMapper.deleteByMap(map));}//

改Testpublic

方式一通过id进行修改,注意传的参数是实体类此实体类中id是判断的id其余的值为修改后的值

sql语句:

User();user.setAge(123);user.setLastName(张三);user.setGender(男);user.setId(2L);System.out.println(userMapper.updateById(user));}//

查Testpublic

id,last_name,email,gender,age,is_delete,sex

FROM

id?System.out.println(userMapper.selectById(3));

sql语句:

id,last_name,email,gender,age,is_delete,sex

FROM

HashMap();map.put(gender,男);System.out.println(userMapper.selectByMap(map));}

三、wrapper条件构造器

提供了一套强大的条件构造器Wrapper用于构建复杂的数据库查询条件。

Wrapper

用于构造**更新Update**条件可以在更新数据时指定条件。

AbstractLambdaWrapper:

使用Lambda

使用范围为QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper

这里为了方便展示wrapper的API就拿QueryWrapper进行演示了

基础条件判断

在mysql中的基础条件判断例如、、…都被mybatisPlus中的条件构造器进行封装成了对应的API方法如下

.gt():大于

使用范围为QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper

具体用法如下

基础的条件判断(支持QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper)*/Testpublic

void

id,last_name,email,gender,age,is_delete,sex

FROM

//le:小于等于.eq(gender,男)//查询gender是否等于男.ne(last_name,null);//判断单个字段不相等的条件ListUser

users

userMapper.selectList(queryWrapper);System.out.println(users);}进阶条件判断in、like、between

在mysql中有三个关键字in、like、between,分别对应着条件构造器API中的

between(boolean

在这里是进行判断此方法是否执行若为true则正常执行若为false不执行下面的也会有许多的方法会有此形参这里就一笔带过了。

column

notBetween、notLike、notIn这些API就是与对应的API进行逆向取值的意思

具体用法如下

进阶条件判断(支持QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper)*

相当于mysql中between、like*/Testpublic

void

testWrapper2(){QueryWrapperUser

queryWrapper

id,last_name,email,gender,age,is_delete,sex

FROM

?)*/queryWrapper.between(true,age,0,18)//查询age在0到18【包括边界值】最前面的boolean值是用来进行判断是否执行此between条件.notBetween(false,age,19,100)//与between相反.like(true,last_name,小)//查询last_name字段包含小的所有字段.notLike(false,last_name,c)//与like相反.likeLeft(true,email,qq.com)//满足左模糊匹配的字段对应的sql语句为:

SELECT

%qq.com.likeRight(true,last_name,李);//满座右模糊匹配的字段所对应sql为

SELECT

/*同时也有notLikeLeft、notLikeRight*/ListUser

users

userMapper.selectList(queryWrapper);System.out.println(queryWrapper);}/***

进阶2条件判断(支持QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper)*

void

testWrapper3(){QueryWrapperUser

queryWrapper

id,last_name,email,gender,age,is_delete,sex

FROM

女)//判断gender的值是否等于男或者女.notIn(true,

age,

2));//与in方法相反,其中values值也可以使用arrays.asList进行赋值也就相当于使用数组进行赋值ListUser

users

userMapper.selectList(queryWrapper);System.out.println(users);}高级条件判断一子查询嵌套查询groupBy

having、order

~Value):子查询在sql中的子查询的意思在条件判断中嵌套一个查询sql并且将此sql返回的值作为参数进行判断而有因为此判断可以是基础条件判断等一系列的判断就在条件构造器中派生了对应的API如inSql、geSql、leSql…其对应的sql语句为

SELECT

用来进行过滤分组的条件sql语句还可以可以使用占位符进行标记列如:age{0}

params

这里又伴生出来了两个方法orderByAsc默认升序、orderBYDesc默认降序

具体使用方法如下

高级条件判断(支持QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper)*

havingorder

testWrapper4(){QueryWrapperUser

queryWrapper

id,last_name,email,gender,age,is_delete,sex

FROM

age18)//子查询将右边的sql语句进行执行执行完返回的所有值左与id进in条件判断.notInSql(false,

id,

age18)/*这里还有eqSql等于嵌套子查询、gtSql大于~、lt小于~、geSql大于等于~、leSql小于等于~。

执行逻辑都和上面的inSql相似*/.orderBy(true,

true,

age);//根据age进行升序排序第一个参数是判断是否执行第二个参数是判断是否进行升序第三个参数是字段/*这里还有orderByAsc默认升序、orderBYDesc默认降序*/ListUser

users

userMapper.selectList(queryWrapper);System.out.println(users);}Testpublic

void

testWrapper5(){QueryWrapperUser

queryWrapper

18)//更具分组后的数据进行过滤sum(age)1;这里的{0},代表的是占位符其中的0就是后面的参数的第一位(注意占位符和参数必须保持一致),sql语句为SELECT

FROM

10.select(age);//查询的某个单独的字段这里因为用到了groupBy

having所以尽量将分组的字段和查询的字段保持一致或者查询其他的逻辑运运算值(如:count),否则可能会报错SQL

查询与

userMapper.selectList(queryWrapper);System.out.println(users);}

func(函数)、and、or这三个是条件构造器中的API有了这些方法可以更加的灵活的执行sql语句

一、func函数

它提供了一种在链式调用中根据条件执行不同查询操作的机制。

通过传入一个

Consumer

方法允许你在不中断链式调用的情况下根据条件执行不同的查询构建逻辑。

方法签名func(boolean

**概念**看到这里并且敲代码尝试的话会发现不管使用ge\lt等方法默认的连接条件就是and所以这里条件构造器就派生出了两个API就是or、and。

**方法签名and\or(boolean

3(支持QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper)*

是mybatisPlus中创建的方法func、and、or。

有了这些方法可以更加的灵活的执行sql语句*/

Test

id,last_name,email,gender,age,is_delete,sex

FROM

(true){i.eq(last_name,小红);//这里因为条件一直恒等于true所以会执行此方法}else

{i.ne(last_name,小红);}}//此方法结合lambda[此时的参数i也就是queryWrapper对象可以执行里面的方法]进行从而可以在执行sql语句前执行一些其他的操作列如判断、循环(不推荐),);ListUser

users

userMapper.selectList(queryWrapper);System.out.println(users);

Test

id,last_name,email,gender,age,is_delete,sex

FROM

?))*/queryWrapper.ge(age,100).and(true,i

FROM

%1%));i.like(last_name,1);}).or(true,j

FROM

%qq.com)j.likeLeft(true,email,qq.com);});//此时的or是和前面的ge和and方法做or运算(...

where

)所以or里面的条件满足而上面的条件不满足也是可以查询出来的ListUser

users

userMapper.selectList(queryWrapper);System.out.println(users);

}条件构造器Wrapper特殊API

只适用于lambdaQueryWrapper和QueryWrapper的Api有select

只适用于lambdaUpdateWrapper和UpdateWrapper的Apiset、setSql

只适用于lambdaUpdateWrapper和UpdateWrappersetDecrBy、setIncrBy

只适用于lambdaQueryWrapper和QueryWrapper的ApiTestpublic

void

一、select用于查询单独某一个字段的apiQueryWrapperUser

queryWrapper

QueryWrapper();queryWrapper.select(id,age,email);System.out.println(userMapper.selectList(queryWrapper));}//

只适用于lambdaUpdateWrapper和UpdateWrapper的ApiTestpublic

void

一、set用于修改某个字段的值UpdateWrapperUser

userUpdateWrapper

UpdateWrapper();userUpdateWrapper.gt(age,18)//修改条件.set(true,sex,1);System.out.println(userMapper.update(userUpdateWrapper));//

sql语句为UPDATE

二、setSql若是修改的字段过于繁琐复杂可以直接写入sql语句将写好的sql语句进行拼接到set关键字之后UpdateWrapperUser

userUpdateWrapper2

UpdateWrapper();userUpdateWrapper2.lt(age,

last_name{0},

张三);//进行拼接的sqlSystem.out.println(userMapper.update(userUpdateWrapper2));}//

只适用于lambdaUpdateWrapper和UpdateWrapper的Api注意这些API的适用的mybatisPlus的版本为3.5.9Testpublic

void

一、setDecrBy方法是在指定的字段的基础上进行递减valLambdaUpdateWrapperUser

lambdaUpdateWrapper

LambdaUpdateWrapper();lambdaUpdateWrapper.gt(User::getAge,

User::getAge,

System.out.println(userMapper.update(lambdaUpdateWrapper));//

sql语句为UPDATE

二、setIncrBy方法是在指定的字段的基础上进行累加valLambdaUpdateWrapperUser

lambdaUpdateWrapper2

LambdaUpdateWrapper();lambdaUpdateWrapper2.gt(User::getAge,

User::getAge,

2);System.out.println(userMapper.update(lambdaUpdateWrapper2));}这里是条件构造器中的大部分API其中还有一些api并没有列举出来要是找不到的话可以去官网mybatisPlushttps://baomidou.com/guides/wrapper/

中进行查询



SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback