找回密码
 立即注册
查看: 218|回复: 0

SpringCloud微服务开发与实战之Service接口

[复制链接]

156

主题

5

精华

160

金币

技术维护QQ:515138

积分
345
发表于 2025-12-8 16:54:57 | 显示全部楼层 |阅读模式
SpringCloud微服务开发与实战之Service接口
1.jpg

1.jpg

测试层:
  1. package com.zidiu.mp.service;
  2. import com.zidiu.mp.domain.po.User;
  3. import org.junit.jupiter.api.Test;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.boot.test.context.SpringBootTest;
  6. import java.time.LocalDateTime;
  7. import java.util.List;
  8. import static org.junit.jupiter.api.Assertions.*;
  9. @SpringBootTest
  10. class IUserServicTest {
  11.     @Autowired
  12.     private IUserServic userServic;
  13.     // 新增
  14.     @Test
  15.     void saveUser() {
  16.         User user = new User();
  17.         user.setUsername("zidiu");
  18.         user.setPassword("123456");
  19.         user.setPhone("12345678901");
  20.         user.setInfo("{"age":24}");
  21.         user.setBalance(1000);
  22.         user.setCreateTime(LocalDateTime.now());
  23.         user.setUpdateTime(LocalDateTime.now());
  24.         userServic.save(user);
  25.     }
  26.     // 批量查询
  27.     @Test
  28.     void queryUserByIds() {
  29.         List<Long> ids = List.of(1L,2L,4L);
  30.         List<User> users = userServic.listByIds(ids);
  31.         users.forEach(System.out::println);
  32.     }
  33. }
复制代码
S层:
  1. package com.zidiu.mp.service;
  2. import com.baomidou.mybatisplus.extension.service.IService;
  3. import com.zidiu.mp.domain.po.User;
  4. public interface IUserServic extends IService<User> {
  5. }
复制代码
实现层:
  1. package com.zidiu.mp.service.impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import com.zidiu.mp.domain.po.User;
  4. import com.zidiu.mp.mapper.UserMapper;
  5. import com.zidiu.mp.service.IUserServic;
  6. import org.springframework.stereotype.Service;
  7. @Service
  8. public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserServic {
  9. }
复制代码
源码打包:
mp-demo.zip (52 KB, 下载次数: 0, 售价: 50 金币)

SpringCloud微服务开发与实战

1.jpg

游客,如果您要查看本帖隐藏内容请回复

1.jpg


  1. package com.itheima.mp;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  5. import com.itheima.mp.domain.po.User;
  6. import com.itheima.mp.mapper.UserMapper;
  7. import com.itheima.mp.service.IUserService;
  8. import org.junit.jupiter.api.Test;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.boot.test.context.SpringBootTest;
  11. import java.time.LocalDateTime;
  12. import java.util.List;
  13. @SpringBootTest
  14. class MpDemoApplicationTests {
  15.     @Autowired
  16.     private UserMapper userMapper;
  17.     @Autowired
  18.     private IUserService userService;
  19.     @Test
  20.     void testInsert() {
  21.         User user = new User();
  22.         user.setId(5L);
  23.         user.setUsername("Lucya");
  24.         user.setPassword("123");
  25.         user.setPhone("18688990011");
  26.         user.setBalance(200);
  27.         user.setInfo("{"age": 24, "intro": "英文老师", "gender": "female"}");
  28.         user.setCreateTime(LocalDateTime.now());
  29.         user.setUpdateTime(LocalDateTime.now());
  30.         userMapper.insert(user);
  31.     }
  32.     @Test
  33.     void testSelectById() {
  34.         User user = userMapper.selectById(5L);
  35.         System.out.println("user = " + user);
  36.     }
  37.     @Test
  38.     void testSelectByIds() {
  39.         List<User> users = userMapper.selectByIds(List.of(1L, 2L, 3L, 4L, 5L));
  40.         users.forEach(System.out::println);
  41.     }
  42.     @Test
  43.     void testUpdateById() {
  44.         User user = new User();
  45.         user.setId(5L);
  46.         user.setBalance(20000);
  47.         userMapper.updateById(user);
  48.     }
  49.     @Test
  50.     void testDelete() {
  51.         userMapper.deleteById(5L);
  52.     }
  53.     // 查询:查询出名字中带o的,存款大于等于1000元的人。代码如下:
  54.     @Test
  55.     void testQueryWrapper() {
  56.         QueryWrapper<User> wrapper = new QueryWrapper<User>()
  57.                 .select("id", "username", "info", "balance")
  58.                 .like("username", "o")
  59.                 .ge("balance", 1000);
  60.         List<User> users = userMapper.selectList(wrapper);
  61.         users.forEach(System.out::println);
  62.     }
  63.     // 更新用户名为jack的用户的余额为2000
  64.     @Test
  65.     void testUpdateByQueryWrapper() {
  66.         // 1.构建查询条件 where name = "Jack"
  67.         QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username", "Jack");
  68.         // 2.更新数据,user中非null字段都会作为set语句
  69.         User user = new User();
  70.         user.setBalance(2000);
  71.         userMapper.update(user, wrapper);
  72.     }
  73.     // 更新id为1,2,4的用户的余额,扣200
  74.     @Test
  75.     void testUpdateWrapper() {
  76.         List<Long> ids = List.of(1L, 2L, 4L);
  77.         // 1.生成SQL
  78.         UpdateWrapper<User> wrapper = new UpdateWrapper<User>()
  79.                 .setSql("balance = balance - 200")// SET balance = balance - 200
  80.                 .in("id", ids); // WHERE id in (1, 2, 4)
  81.         // 2.更新,注意第一个参数可以给null,也就是不填更新字段和数据,
  82.         // 而是基于UpdateWrapper中的setSQL来更新
  83.         userMapper.update(null, wrapper);
  84.     }
  85.     // LambdaQueryWrapper方式
  86.     @Test
  87.     void testLambdaQueryWrapper() {
  88.         // 1.构建条件 WHERE username LIKE "%o%" AND balance >= 1000
  89.         LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>()
  90.                 .select(User::getId, User::getUsername, User::getInfo, User::getBalance)
  91.                 .like(User::getUsername, "o")
  92.                 .ge(User::getBalance, 1000);
  93.         // 2.查询
  94.         List<User> users = userMapper.selectList(wrapper);
  95.         users.forEach(System.out::println);
  96.     }
  97.     // 自定义sql
  98.     @Test
  99.     void testCustomWrapper() {
  100.         // 1.准备自定义查询条件
  101.         List<Long> ids = List.of(1L, 2L, 4L);
  102.         int balance = 200;
  103.         LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>().in(User::getId, ids);
  104.         // 2.调用mapper的自定义方法,直接传递Wrapper
  105.         userMapper.deductBalanceByIds(wrapper,balance);
  106.     }
  107.     @Test
  108.     void testSaveUser() {
  109.         User user = new User();
  110.         user.setId(8L);
  111.         user.setUsername("Lucyaaa");
  112.         user.setPassword("123");
  113.         user.setPhone("18688990011");
  114.         user.setBalance(200);
  115.         user.setInfo("{"age": 24, "intro": "英文老师", "gender": "female"}");
  116.         user.setCreateTime(LocalDateTime.now());
  117.         user.setUpdateTime(LocalDateTime.now());
  118.         userService.save(user);
  119.     }
  120.     @Test
  121.     void testQuery() {
  122.         List<User> users = userService.listByIds(List.of(1L, 2L, 3L, 4L, 5L));
  123.         users.forEach(System.out::println);
  124.     }
  125. }
复制代码
  1. package com.itheima.mp.service;
  2. import com.baomidou.mybatisplus.extension.service.IService;
  3. import com.itheima.mp.domain.po.User;
  4. public interface IUserService extends IService<User> {
  5. }
复制代码
  1. package com.itheima.mp.service.impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import com.itheima.mp.domain.po.User;
  4. import com.itheima.mp.mapper.UserMapper;
  5. import com.itheima.mp.service.IUserService;
  6. import org.springframework.stereotype.Service;
  7. @Service
  8. public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
  9. }
复制代码
mp-demo3.zip (40.84 KB, 下载次数: 1, 售价: 50 金币)


上一篇:SpringCloud微服务开发与实战之MybatisPlus自定义SQL
下一篇:SpringBoot3+SSM的企业级Java项目实战之外卖小程序
网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2026-1-19 13:18

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表