From 0a31998bd35259717d65e1c6300e6b09641b59ba Mon Sep 17 00:00:00 2001 From: myh Date: Sat, 11 Nov 2023 20:13:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E7=94=A8=E6=88=B7=E5=AF=86?= =?UTF-8?q?=E7=A0=81CRUD=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/UsersPasswordRepository.java | 17 +++++++ .../springdemo/dao/UsersRepository.java | 20 --------- .../springdemo/service/UsersService.java | 8 +--- .../springdemo/service/UsersServiceImpl.java | 45 ++++++++++++------- 4 files changed, 47 insertions(+), 43 deletions(-) create mode 100644 src/main/java/com/example/springdemo/dao/UsersPasswordRepository.java diff --git a/src/main/java/com/example/springdemo/dao/UsersPasswordRepository.java b/src/main/java/com/example/springdemo/dao/UsersPasswordRepository.java new file mode 100644 index 0000000..ac4934f --- /dev/null +++ b/src/main/java/com/example/springdemo/dao/UsersPasswordRepository.java @@ -0,0 +1,17 @@ +package com.example.springdemo.dao; + +import com.example.springdemo.entities.password.UsersPassword; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + +@Repository +public interface UsersPasswordRepository + extends JpaRepository { + @Query("update UsersPassword UsersPwd set UsersPwd.password = ?1 where UsersPwd.users.id = ?2") + void updatePassword(String password, Long userID); + + //删除账户时删除密码 + @Query("delete from UsersPassword UsersPwd where UsersPwd.users.id = ?1") + void deletePasswordById(Long userID); +} diff --git a/src/main/java/com/example/springdemo/dao/UsersRepository.java b/src/main/java/com/example/springdemo/dao/UsersRepository.java index 8ce0b42..8a5b6a5 100644 --- a/src/main/java/com/example/springdemo/dao/UsersRepository.java +++ b/src/main/java/com/example/springdemo/dao/UsersRepository.java @@ -1,33 +1,13 @@ package com.example.springdemo.dao; import com.example.springdemo.entities.Users; -import com.example.springdemo.entities.password.UsersPassword; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; @Repository public interface UsersRepository extends JpaRepository { Users findByName(String name); - @Modifying - @Transactional void deleteByName(String name); - - //添加新用户时创建密码 - void addPassword(UsersPassword usersPassword); - - @Modifying - @Transactional - @Query("update UsersPassword UsersPwd set UsersPwd.password = ?1 where UsersPwd.users.id = ?2") - void updatePassword(String password, Long userID); - - //删除账户时删除密码 - @Modifying - @Transactional - @Query("delete from UsersPassword UsersPwd where UsersPwd.users.id = ?1") - void deletePasswordById(Long userID); } diff --git a/src/main/java/com/example/springdemo/service/UsersService.java b/src/main/java/com/example/springdemo/service/UsersService.java index 1fac457..ae34bfd 100644 --- a/src/main/java/com/example/springdemo/service/UsersService.java +++ b/src/main/java/com/example/springdemo/service/UsersService.java @@ -3,11 +3,9 @@ package com.example.springdemo.service; import com.example.springdemo.entities.Users; import com.example.springdemo.entities.password.UsersPassword; -import java.util.Optional; - public interface UsersService { - Users addUsers(Users user); + Users addUsers(Users user, UsersPassword usersPassword); void deleteUsersById(Long userID); @@ -21,9 +19,5 @@ public interface UsersService { Users findByName(String name); - void addPassword(UsersPassword usersPassword); - void updatePassword(String password, Long userID); - - void deletePasswordById(Long userID); } diff --git a/src/main/java/com/example/springdemo/service/UsersServiceImpl.java b/src/main/java/com/example/springdemo/service/UsersServiceImpl.java index 52007eb..82e9b3e 100644 --- a/src/main/java/com/example/springdemo/service/UsersServiceImpl.java +++ b/src/main/java/com/example/springdemo/service/UsersServiceImpl.java @@ -1,35 +1,55 @@ package com.example.springdemo.service; +import com.example.springdemo.dao.UsersPasswordRepository; import com.example.springdemo.dao.UsersRepository; import com.example.springdemo.entities.Users; import com.example.springdemo.entities.password.UsersPassword; import jakarta.annotation.Resource; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.stereotype.Service; - -import java.util.Optional; +import org.springframework.transaction.annotation.Transactional; @Service public class UsersServiceImpl implements UsersService { @Resource private UsersRepository usersRepository; + @Resource + private UsersPasswordRepository usersPasswordRepository; + @Override - public Users addUsers(Users user) { - return usersRepository.save(user); + @Modifying + @Transactional(rollbackFor = Exception.class) + //添加用户时同步添加密码 + public Users addUsers(Users user, UsersPassword usersPassword) { + Users u = usersRepository.save(user); + usersPasswordRepository.save(usersPassword); + return u; } @Override + @Modifying + @Transactional(rollbackFor = Exception.class) + //删除用户时同步删除密码 public void deleteUsersById(Long userID) { usersRepository.deleteById(userID); - this.deletePasswordById(userID); + usersPasswordRepository.deletePasswordById(userID); } @Override + @Modifying + @Transactional(rollbackFor = Exception.class) + //删除用户时同步删除密码 public void deleteUsersByName(String name) { usersRepository.deleteByName(name); + //获取用户ID + Long userID = usersRepository.findByName(name).getId(); + usersPasswordRepository.deletePasswordById(userID); } @Override + @Modifying + @Transactional(rollbackFor = Exception.class) public Users updateUsers(Users user) { return usersRepository.save(user); } @@ -50,17 +70,10 @@ public class UsersServiceImpl implements UsersService { } @Override - public void addPassword(UsersPassword usersPassword) { - usersRepository.addPassword(usersPassword); - } - - @Override + @Modifying + @Transactional(rollbackFor = Exception.class) + //更新用户密码 public void updatePassword(String password, Long userID) { - usersRepository.updatePassword(password, userID); - } - - @Override - public void deletePasswordById(Long userID) { - usersRepository.deletePasswordById(userID); + usersPasswordRepository.updatePassword(password, userID); } }