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