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

模板网站 seo免费网站的app

模板网站 seo,免费网站的app,关键词诊断优化全部关键词,辽宁省建设机械协会官方网站一、条件构造器 1.为什么要学#xff1f; 用于方便地构建SQL查询条件 2.如何使用#xff1f; 3.实战案例 例#xff1a;查询出名字中带o的#xff0c;存款大于等于1000元的人的id,username,info,balance字段 数据库如图#xff1a; 示例#xff1a; Test void testL…一、条件构造器 1.为什么要学 用于方便地构建SQL查询条件 2.如何使用 3.实战案例 例查询出名字中带o的存款大于等于1000元的人的id,username,info,balance字段 数据库如图 示例 Test void testLambdaQueryWrapper() {//1.构建查询条件 LambdaQueryWrapperUser wrapper new LambdaQueryWrapperUser().select(User::getId,User::getUsername,User::getInfo,User::getBalance) .like(User::getUsername,o) .ge(User::getBalance, 1000);//2.查询 ListUser users userMapper.selectList(wrapper); users.forEach(System.out::println);} 二、自定义SQL 1.为什么要学 当SQL语句中where条件之外的部分无法使用MP方便地实现只能手动进行拼接但违背了开发规范因此可以使用自定义SQL解决。 2.如何使用 先在业务层利用wrapper创建条件之后在自定义mapper方法中传入wrapper需要使用注解Param(ew)然后在自定义SQL中拼接前半部分 三、IService接口 1.如何使用 2.实战案例 编号 接口 请求方式 请求路径 请求参数 返回值 1 新增用户 POST /users 用户表单实体 无 2 删除用户 DELETE /users/{id} 用户id 无 3 根据id查询用户 GET /users/{id} 用户id 用户VO 4 根据id批量查询 GET /users 用户id集合 用户VO集合 package com.itheima.mp.controller;import cn.hutool.core.bean.BeanUtil; import com.itheima.mp.domain.dto.UserFormDTO; import com.itheima.mp.domain.po.User; import com.itheima.mp.domain.vo.UserVO; import com.itheima.mp.service.IUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*;import java.util.List;Api(tags 用户管理接口) RequiredArgsConstructor RestController RequestMapping(users) public class UserController {private final IUserService userService;PostMappingApiOperation(新增用户)public void saveUser(RequestBody UserFormDTO userFormDTO){// 1.转换DTO为POUser user BeanUtil.copyProperties(userFormDTO, User.class);// 2.新增userService.save(user);}DeleteMapping(/{id})ApiOperation(删除用户)public void removeUserById(PathVariable(id) Long userId){userService.removeById(userId);}GetMapping(/{id})ApiOperation(根据id查询用户)public UserVO queryUserById(PathVariable(id) Long userId){// 1.查询用户User user userService.getById(userId);// 2.处理voreturn BeanUtil.copyProperties(user, UserVO.class);}GetMappingApiOperation(根据id集合查询用户)public ListUserVO queryUserByIds(RequestParam(ids) ListLong ids){// 1.查询用户ListUser users userService.listByIds(ids);// 2.处理voreturn BeanUtil.copyToList(users, UserVO.class);} } 上述接口都直接在controller即可实现无需编写任何service代码 3.实战案例高级 当需要处理解决复杂业务时不得不自定义service方法来编辑业务逻辑 例 Controller层 PutMapping({id}/deduction/{money}) ApiOperation(扣减用户余额) public void deductBalance(PathVariable(id) Long id, PathVariable(money)Integer money){userService.deductBalance(id, money); } Service层 package com.itheima.mp.service;import com.baomidou.mybatisplus.extension.service.IService; import com.itheima.mp.domain.po.User;public interface IUserService extends IServiceUser {void deductBalance(Long id, Integer money); } Serviceimpl层 package com.itheima.mp.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.itheima.mp.domain.po.User; import com.itheima.mp.mapper.UserMapper; import com.itheima.mp.service.IUserService; import org.springframework.stereotype.Service;Service public class UserServiceImpl extends ServiceImplUserMapper, User implements IUserService {Overridepublic void deductBalance(Long id, Integer money) {// 1.查询用户User user getById(id);// 2.判断用户状态if (user null || user.getStatus() 2) {throw new RuntimeException(用户状态异常);}// 3.判断用户余额if (user.getBalance() money) {throw new RuntimeException(用户余额不足);}// 4.扣减余额baseMapper.deductMoneyById(id, money);} } mapper层 Update(UPDATE user SET balance balance - #{money} WHERE id #{id}) void deductMoneyById(Param(id) Long id, Param(money) Integer money); 四、IService的Lambda方法 IService中还提供了Lambda功能来简化我们的复杂查询及更新功能 1.实战案例一 例实现一个根据复杂条件查询用户的接口查询条件如下 name用户名关键字可以为空 status用户状态可以为空 minBalance最小余额可以为空 maxBalance最大余额可以为空 可以理解成一个用户的后台管理界面管理员可以自己选择条件来筛选用户因此上述条件不一定存在需要做判断。 Service中对LambdaQueryWrapper和LambdaUpdateWrapper的用法进一步做了简化。我们无需自己通过new的方式来创建Wrapper而是直接调用lambdaQuery和lambdaUpdate方法 GetMapping(/list) ApiOperation(根据id集合查询用户) public ListUserVO queryUsers(UserQuery query){// 1.组织条件String username query.getName();Integer status query.getStatus();Integer minBalance query.getMinBalance();Integer maxBalance query.getMaxBalance();// 2.查询用户ListUser users userService.lambdaQuery().like(username ! null, User::getUsername, username).eq(status ! null, User::getStatus, status).ge(minBalance ! null, User::getBalance, minBalance).le(maxBalance ! null, User::getBalance, maxBalance).list();// 3.处理voreturn BeanUtil.copyToList(users, UserVO.class); } 可以发现lambdaQuery方法中除了可以构建条件还需要在链式编程的最后添加一个list()这是在告诉MP我们的调用结果需要是一个list集合。这里不仅可以用list()可选的方法有 .one()最多1个结果 .list()返回集合结果 .count()返回计数结果 MybatisPlus会根据链式编程的最后一个方法来判断最终的返回结果。 2.实战案例二 例改造根据id修改用户余额的接口要求如下 如果扣减后余额为0则将用户status修改为冻结状态 Override Transactional public void deductBalance(Long id, Integer money) {// 1.查询用户User user getById(id);// 2.校验用户状态if (user null || user.getStatus() 2) {throw new RuntimeException(用户状态异常);}// 3.校验余额是否充足if (user.getBalance() money) {throw new RuntimeException(用户余额不足);}// 4.扣减余额 update tb_user set balance balance - ?int remainBalance user.getBalance() - money;lambdaUpdate().set(User::getBalance, remainBalance) // 更新余额.set(remainBalance 0, User::getStatus, 2) // 动态判断是否更新status.eq(User::getId, id).eq(User::getBalance, user.getBalance()) // 乐观锁.update(); } 五、IService的批量新增 Test void testSaveBatch() {// 准备10万条数据ListUser list new ArrayList(1000);long b System.currentTimeMillis();for (int i 1; i 100000; i) {list.add(buildUser(i));// 每1000条批量插入一次if (i % 1000 0) {userService.saveBatch(list);list.clear();}}long e System.currentTimeMillis();System.out.println(耗时 (e - b)); }
http://www.hkea.cn/news/14258159/

相关文章:

  • 常州网站建设seo怎样在百度上发布信息
  • 电子商务网站开发软件php网站数据库怎么上传
  • 网站建设大约要多少钱什么叫网站根目录
  • 淘客单网站百姓网找工作
  • 福州福清网站建设app和网站的成本区别
  • 秦皇岛哪家公司网站建设好南宁工程造价建设信息网站
  • 外贸网站推广上海东莞常平二手房价最新消息
  • 做ppt医学专业图片网站世纪城网站建设
  • 网站建设网络推广书生网页内容
  • 做机械设备类网站用什么颜色好apcache wordpress
  • 别人做的网站百度网站验证网页制造与网站建设论文
  • 代做毕业设计的网站WordPress分享无法显示
  • 玉林住房和城乡建设部网站手机app网站
  • 定制型网站建设渠道淘宝网商务网站建设目的
  • 网站和app软件制作公司wordpress按分类设置seo
  • 东莞市微客巴巴做网站seo发包技术教程
  • dede小游戏php网站源码知晓程序 小程序商店
  • 响应式网站 软件江门做网站seo的
  • 网站文章多久收录站长工具排名分析
  • 企业网站设计推广方案网站建设 调研报告
  • 公司的网站怎么做推广苏州哪家做网站好些
  • 网站建设联系电话大连网站制作最好的公司
  • 网站设计公司(信科网络)wordpress 默认主题站点
  • 电商设计网站哪个好北京网站设计公司飞沐
  • 中国建设银行河北省门户网站经典重庆
  • h5响应式网站模板网站的劣势
  • 西安网站建设制作个人网站号备案吗
  • 张家口网站seo免费建网站抚顺
  • 外贸五金网站搜狗链接提交入口
  • 石家庄规划建设局网站地方旅游网站开发