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

做交流网站口碑营销的案例

做交流网站,口碑营销的案例,建e室内设计网全景效果图,188自助建站系统MybatisPlus 核心功能 文章目录 MybatisPlus 核心功能1. 条件构造器1.1 QueryWrapper1.2 LambdaQueryWrapper(推荐)1.3 UpdateWrapper1.4 LambdaUpdateWrapper 2. 自定义SQL3. Service接口 1. 条件构造器 当涉及到查询或修改语句时,MybatisP…

MybatisPlus 核心功能

文章目录

  • MybatisPlus 核心功能
    • 1. 条件构造器
      • 1.1 QueryWrapper
      • 1.2 LambdaQueryWrapper(推荐)
      • 1.3 UpdateWrapper
      • 1.4 LambdaUpdateWrapper
    • 2. 自定义SQL
    • 3. Service接口

1. 条件构造器

当涉及到查询或修改语句时,MybatisPlus需要使用条件构造器来进行条件判断,它提供了以下条件构造器:

在这里插入图片描述

  • QueryWrapperLambdaQueryWrapper:用来构建select、delete、update的where条件部分
  • UpdateWrapperLambdaUpdateWrapper:通常只有在set语句比较特殊的时候才使用

1.1 QueryWrapper

QueryWrapper下有许多方法可以使用,用来充当指定where条件部分:

  • select:指定需要查询的字段
  • eq:和指定内容相等的数据
  • like:进行模糊查询
  • ge:比指定数大的数据
  • le:比指定数小的数据

代码示例

①查询出名字中带o的,存款小于等于1000元的人的id、username、info、balance字段:

@Test
void testQueryWrapper() {// 1. 构建查询条件QueryWrapper<User> wrapper = new QueryWrapper<User>().select("id", "username", "info", "balance").like("username", "o").le("balance", 1000);// 2. 查询List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);
}

在这里插入图片描述

②更新用户名为jack的用户的余额为2500:

@Test
void testUpdateByQueryWrapper1() {// 1. 要更新的数据User user = new User();user.setBalance(2500);// 2. 更新的条件QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username", "jack");// 3. 更新数据userMapper.update(user, wrapper);
}

在这里插入图片描述

③删除名为Thomas的数据:

@Test
void testDeleteByQueryWrapper() {// 1. 删除的条件QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username", "Thomas");// 2. 删除数据userMapper.delete(wrapper);
}

在这里插入图片描述

1.2 LambdaQueryWrapper(推荐)

LambdaQueryWrapper的具体作用与QueryWrapper一样,用来构建select、delete、update的where条件部分,但它与QueryWrapper的不同在于,LambdaQueryWrapper更能防止硬编码,因此更推荐使用LambdaQueryWrapper

LambdaQueryWrapper在操作上和的不同点便是使用了类名::方法的方式来填充数据,而不是将查询条件“写死”。

代码示例

①查询出名字中带o的,存款小于等于1000元的人的id、username、info、balance字段:

@Test
void testLambdaQueryWrapper() {// 1.构建查询条件LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>().select(User::getId, User::getUsername, User::getInfo, User::getBalance).like(User::getUsername, "o").le(User::getBalance, 1000);// 2.查询List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);
}

②更新用户名为jack的用户的余额为5000:

@Test
void testUpdateByLambdaQueryWrapper() {// 1. 要更新的数据User user = new User();user.setBalance(5000);// 2. 更新的条件LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>().eq(User::getUsername, "XiaoMi");// 3.更新数据userMapper.update(user, wrapper);
}

相较于QueryWrapper更推荐使用LambdaQueryWrapper来作为条件构造器!!

1.3 UpdateWrapper

set语句比较特殊时可以使用UpdateWrapper来进行条件构造,如加减数据:

代码示例

更新id为1,2,4的用户的余额,扣200:

@Test
void testUpdateWrapper1() {List<Long> ids = List.of(1L, 2L,4L);UpdateWrapper<User> wrapper = new UpdateWrapper<User>().setSql("balance = balance - 200").in("id", ids);userMapper.update(null, wrapper);
}

在这里插入图片描述

1.4 LambdaUpdateWrapper

使用方式与UpdateWrapper基本相同,只是将指定字段修改为可变字段:

代码示例

更新id为1,2,4的用户的余额,扣200:

@Test
void testLambdaUpdateWrapper() {List<Long> ids = List.of(1L, 2L,4L);LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<User>().setSql("balance = balance - 200").in(User::getId, ids); // 这里与`UpdateWrapper`不同userMapper.update(null, wrapper);
}

在这里插入图片描述

2. 自定义SQL

MyBatisPlus中,当我们需要使用复杂的sql语句进行操作时,往往是通过自定义SQL+条件构造器的方式来解决问题的!即通过条件构造器来构建复杂的Where的条件,剩余部分则通过自定义sql解决:

代码示例

更新id为1,2,3的用户的余额,扣指定金额:

  1. 基于Wrapper构建Where条件

    @Test
    void testCustomSqlUpdate1() {// 1. 更新条件List<Long> ids = List.of(1L, 2L, 3L);int amount = 200;// 2. 定义条件LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>().in(User::getId, ids);// 3. 调用自定义SQL方法userMapper.updateBalanceByLBIds(wrapper, amount);
    }
    
  2. 在Mapper方法参数中通过Param注解声明wrapper变量名称, 必须写ew

    public interface UserMapper extends BaseMapper<User> {void updateBalanceByLBIds(@Param("ew") LambdaQueryWrapper<User> wrapper, @Param("amount") int amount);
    }
    
  3. 编写自定义sql,并使用Wrapper充当条件

    <update id="updateBalanceByLBIds">update tb_user set balance = balance - #{amount} ${ew.customSqlSegment}
    </update>
    

    在这里插入图片描述

3. Service接口

MybatisPlus除了给我们提供快速实现CURD的功能外,也为我们提供了可直接使用的Service接口:

在这里插入图片描述

IService接口为我们提供了一系列可以封装好的接口,而我们需要做的就是继承然后使用它:

在这里插入图片描述

使用流程

  1. 自定义Service接口并继承IService接口

    public interface MUserService extends IService<User> {// 注意需要给上述泛型提供实体类
    }
    
  2. 自定义Service实现类,实现自定义接口并继承ServiceImpl接口

    @Service
    public class MUserServiceImpl extends ServiceImpl<UserMapper, User> implements MUserService {// 注意需要给上述泛型提供Mapper接口和实体类
    }
    

测试一下

@SpringBootTest
class MUserServiceImplTest {@Autowiredprivate MUserService mUserService;@Testvoid testQuery() {List<User> users = mUserService.listByIds(List.of(1L,2L,3L));users.forEach(System.out::println);}@Testvoid testInsert() {User user = new User();user.setUsername("XiaoTian");user.setPassword("11111");user.setPhone("10085");user.setBalance(200);user.setInfo(UserInfo.of(25, "体育老师", "man"));user.setCreateTime(LocalDateTime.now());user.setUpdateTime(LocalDateTime.now());mUserService.save(user);}}

在这里插入图片描述

在这里插入图片描述以上便是MybatisPlus提供的一些核心功能了!!

http://www.wangmingla.cn/news/63594.html

相关文章:

  • webgis前端开发已矣seo排名点击软件
  • 商城网站建设code521创量广告投放平台
  • 做市场调查的网站免费郑州网站关键词优化公司哪家好
  • 天宁寺网站建设网页平台做个业务推广
  • 怎样加强政治建设seo综合查询系统
  • 自己做的网站打开速度慢百度竞价推广出价技巧
  • 浏览器禁止网站怎么做seo网站优化方案
  • 网站建设需求文档青海seo关键词排名优化工具
  • 福建泉州做网站公司哪家好代刷网站推广链接免费
  • 甘肃兰州做网站上海aso苹果关键词优化
  • 有哪些做废品的网站seo网络搜索引擎优化
  • 广州外贸网站公司免费域名的网站
  • 宁波海曙网站开发公司b站大全永不收费2023入口在哪
  • 建设网站的意义 作用是什么意思口碑营销有哪些方式
  • php网站后台上传图片有没有推荐到首页的功能独立站seo是什么意思
  • 郑州一网网站建设制作网站需要什么技术
  • 网站建设与管理需要什么软件百度运营优化师
  • 做一个宣传网站的策划书平台怎样推广
  • 网站开发与设计岗位网站快速建站
  • 西部数码网站管理助手 mysql保存路径长沙seo优化哪家好
  • 传智播客 网站开发兰州网络seo
  • 泰安网络推广 网站建设 网站优化贵阳网站优化公司
  • 微信做任务赚钱的网站如何做运营推广
  • 有哪些线上做酒店的网站百度云群组
  • 织梦网站怎么修改内容西安市seo排名按天优化
  • 2345浏览器主页青岛网站seo
  • 平顶山 网站建设公司灰色词首页排名接单
  • 做一个大型网站怎样制作网站
  • 30岁转行做网站编辑网络新闻发布平台发稿
  • 可视化编程软件福州seo关键字推广