From e78758cc7c9d11dbede6a7e19fda59622c78c9e0 Mon Sep 17 00:00:00 2001 From: 10503 <1050374295@qq.com> Date: Fri, 20 Oct 2023 18:37:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A9=E7=94=A8Lombok=E6=B3=A8=E8=A7=A3?= =?UTF-8?q?=E4=BD=BF=E5=BE=97=E4=BB=A3=E7=A0=81=E7=AE=80=E5=8C=96=EF=BC=8C?= =?UTF-8?q?=E5=92=8CMP=E7=9A=84lambdaQuery=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++++ .../watu/demo1/Controller/UserController.java | 31 ++++++++++++----- .../watu/demo1/Service/IUserPlusService.java | 7 +++- .../Service/Impl/UserPlusServiceImpl.java | 34 ++++++++++++++----- .../com/watu/demo1/pojo/query/UserQuery.java | 11 ++++++ .../Impl/UserPlusRepositoryImpl.java | 5 +-- src/main/resources/application.properties | 1 + 7 files changed, 76 insertions(+), 19 deletions(-) create mode 100644 src/main/java/com/watu/demo1/pojo/query/UserQuery.java diff --git a/pom.xml b/pom.xml index 1639840..767f243 100644 --- a/pom.xml +++ b/pom.xml @@ -35,6 +35,12 @@ 3.3.0 + + cn.hutool + hutool-all + 5.8.15 + + com.mysql mysql-connector-j diff --git a/src/main/java/com/watu/demo1/Controller/UserController.java b/src/main/java/com/watu/demo1/Controller/UserController.java index eeed924..d9be1f2 100644 --- a/src/main/java/com/watu/demo1/Controller/UserController.java +++ b/src/main/java/com/watu/demo1/Controller/UserController.java @@ -1,18 +1,20 @@ package com.watu.demo1.Controller; +import cn.hutool.core.bean.BeanUtil; import com.watu.demo1.Service.IUserPlusService; -import com.watu.demo1.mapper.UserMapper; import com.watu.demo1.pojo.DTO.UserDTO; import com.watu.demo1.pojo.entity.User; +import com.watu.demo1.pojo.query.UserQuery; import com.watu.demo1.pojo.vo.UserVO; +import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("v1/Plus/") +@RequiredArgsConstructor public class UserController { // @Autowired(required = false) // private UserMapper userMapper; @@ -51,24 +53,37 @@ public class UserController { // return (insert != 0) ? "添加成功" : "添加失败"; // } - @Autowired - IUserPlusService service; + private final IUserPlusService service; + @PostMapping("add") - public void addNewUser(@RequestBody UserDTO userDTO){ + public void addNewUser(@RequestBody UserDTO userDTO) { service.addUser(userDTO); } + @GetMapping("delete/{id}") - public void delete(@PathVariable Long id){ + public void delete(@PathVariable Long id) { service.deleteById(id); } + @PostMapping("select") - public void select(@RequestBody UserDTO userDTO){ + public void select(@RequestBody UserDTO userDTO) { service.selectByName(userDTO); } + @PostMapping("update/d1") - public void update(@RequestBody UserDTO userDTO){ + public void update(@RequestBody UserDTO userDTO) { service.updateById(userDTO); } + /**复杂的条件查询*/ + /**条件多,定义对象去封装,,,哦~~师傅之前可能是这个意思*/ + /** + * 是可以在Controller直接调用一些list方法的,但是代码会臃肿,可以自定义方法。 + */ + @GetMapping("/list") + public List queryInFo(UserQuery query) { + List users=service.queryUsers(query.getAge(),query.getId(),query.getName(),query.getVersion()); + return BeanUtil.copyToList(users,UserVO.class); + } } diff --git a/src/main/java/com/watu/demo1/Service/IUserPlusService.java b/src/main/java/com/watu/demo1/Service/IUserPlusService.java index 2aec276..43c2aa7 100644 --- a/src/main/java/com/watu/demo1/Service/IUserPlusService.java +++ b/src/main/java/com/watu/demo1/Service/IUserPlusService.java @@ -1,9 +1,12 @@ package com.watu.demo1.Service; +import com.baomidou.mybatisplus.extension.service.IService; import com.watu.demo1.pojo.DTO.UserDTO; import com.watu.demo1.pojo.entity.User; -public interface IUserPlusService { +import java.util.List; + +public interface IUserPlusService extends IService{ /** *增 * 插入类别数据 @@ -37,4 +40,6 @@ public interface IUserPlusService { * @return 受影响的行数 * */ int updateById(UserDTO userDTO); + + List queryUsers(Integer age, String id, String name, Integer version); } diff --git a/src/main/java/com/watu/demo1/Service/Impl/UserPlusServiceImpl.java b/src/main/java/com/watu/demo1/Service/Impl/UserPlusServiceImpl.java index f2d0961..8339dd9 100644 --- a/src/main/java/com/watu/demo1/Service/Impl/UserPlusServiceImpl.java +++ b/src/main/java/com/watu/demo1/Service/Impl/UserPlusServiceImpl.java @@ -1,32 +1,38 @@ package com.watu.demo1.Service.Impl; -import com.sun.org.apache.bcel.internal.generic.NEW; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.watu.demo1.Service.IUserPlusService; +import com.watu.demo1.mapper.UserPlusMapper; import com.watu.demo1.pojo.DTO.UserDTO; import com.watu.demo1.pojo.entity.User; import com.watu.demo1.pojo.vo.UserVO; import com.watu.demo1.repository.IUserPlusRepository; import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + @Service -public class UserPlusServiceImpl implements IUserPlusService { - @Autowired +public class UserPlusServiceImpl extends ServiceImpl implements IUserPlusService { + private IUserPlusRepository iUserPlusRepository; + public UserPlusServiceImpl(IUserPlusRepository iUserPlusRepository) { + this.iUserPlusRepository = iUserPlusRepository; + } + @Override public void addUser(UserDTO userDTO) { /**在这里就可以用到之前在Repository中定义的CountByName的方法,用来查看库中是否已经存在相同的名字*/ String name = userDTO.getName(); - System.out.println("要加入的名称是"+name); + System.out.println("要加入的名称是" + name); int countByname = iUserPlusRepository.countByName(name); - if (countByname>0){ + if (countByname > 0) { throw new RuntimeException("名称被占用"); } User user = new User(); - BeanUtils.copyProperties(userDTO,user); + BeanUtils.copyProperties(userDTO, user); iUserPlusRepository.insert(user); System.out.println("古德古德"); } @@ -44,9 +50,21 @@ public class UserPlusServiceImpl implements IUserPlusService { @Override public int updateById(UserDTO userDTO) { UserVO userVO = new UserVO(); - BeanUtils.copyProperties(userDTO,userVO); + BeanUtils.copyProperties(userDTO, userVO); return iUserPlusRepository.updateById(userVO); } + @Override + public List queryUsers(Integer age, String id, String name, Integer version) { + //TODO使用Wrapper来实现 + /*用lambdaQuery*/ + return lambdaQuery() + .eq( name!= null, User::getName, name) + .eq(version!=null,User::getVersion,version) + .lt(age!=null,User::getAge,age) //小于 等于 le + .gt(id!=null,User::getId,id) //大于 等于 ge + .list(); //判断查多个,就是list,就一个 就 one();分页就page();是否存在exist();数量 count();; + } + } diff --git a/src/main/java/com/watu/demo1/pojo/query/UserQuery.java b/src/main/java/com/watu/demo1/pojo/query/UserQuery.java new file mode 100644 index 0000000..eb03990 --- /dev/null +++ b/src/main/java/com/watu/demo1/pojo/query/UserQuery.java @@ -0,0 +1,11 @@ +package com.watu.demo1.pojo.query; + +import lombok.Data; + +@Data +public class UserQuery { + private String name; + private String id; + private Integer age; + private Integer version; +} diff --git a/src/main/java/com/watu/demo1/repository/Impl/UserPlusRepositoryImpl.java b/src/main/java/com/watu/demo1/repository/Impl/UserPlusRepositoryImpl.java index 5efb0e8..b38bd81 100644 --- a/src/main/java/com/watu/demo1/repository/Impl/UserPlusRepositoryImpl.java +++ b/src/main/java/com/watu/demo1/repository/Impl/UserPlusRepositoryImpl.java @@ -5,14 +5,15 @@ import com.watu.demo1.mapper.UserPlusMapper; import com.watu.demo1.pojo.entity.User; import com.watu.demo1.pojo.vo.UserVO; import com.watu.demo1.repository.IUserPlusRepository; +import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Repository +@RequiredArgsConstructor public class UserPlusRepositoryImpl implements IUserPlusRepository { - @Autowired - private UserPlusMapper userPlusMapper; + private final UserPlusMapper userPlusMapper; /** * 增 插入一个数据 diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8f79ad4..f4b6cfa 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,4 +4,5 @@ spring.datasource.password=!QAZ1qaz mybatis.mapper-locations=classpath:mappers/*.xml + mybatis-plus.mapper-locations=classpath:mappers/*.xml \ No newline at end of file