一步一步學SpringDataJpa——JpaRepository基本功能(Curd)
阿新 • • 發佈:2019-01-11
1.UserService
/** * * Copyright: Copyright (c) 2012 Asiainfo-Linkage * * [email protected]:2014-3-25 * @ClassName: UserService.java * @Description: 使用者服務介面 * * @version: v1.0.0上午9:54:56eleven * @author: elevenSpringDataJpa * * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 新建 */ package com.xr.service; import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import com.xr.bean.User; public interface UserService { /** * * @Title: addUser * @Description: TODO(新增使用者) * @return: void * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ void addUser(User user); /** * * @Title: addUser * @Description: TODO(批量新增使用者) * @param list * @return: void * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ void addUser(List<User> list); /** * * @Title: deleteUser * @Description: TODO(刪除使用者) * @param user * @return: void * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ void deleteUser(User user); /** * * @Title: deleteUser * @Description: TODO(刪除使用者) * @param id * @return: void * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ void deleteUser(String id); /** * * @Title: deleteUser * @Description: TODO(刪除使用者) * @param list * @return: void * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ void deleteUser(List<User> list); /** * * @Title: updateUser * @Description: TODO(編輯使用者) * @param user * @return: void * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ void updateUser(User user); /** * * @Title: existUser * @Description: TODO(判斷使用者是否存在) * @param id * @return * @return: boolean * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ boolean existUser(String id); /** * * @Title: queryUserById * @Description: TODO(查詢使用者) * @param id * @return * @return: User * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ User queryUserById(String id); /** * * @Title: queryAllUser * @Description: TODO(查詢使用者) * @return * @return: List<User> * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ List<User> queryAllUser(); /** * * @Title: queryListUser * @Description: TODO(查詢使用者) * @param list * @return * @return: List<User> * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ List<User> queryListUser(List<String> list); /** * * @Title: queryAllUserSort * @Description: TODO(查詢使用者) * @param sort * @return * @return: List<User> * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ List<User> queryAllUserBySort(Sort sort); /** * * @Title: queryUserByPage * @Description: TODO(查詢使用者) * @param pageable * @return * @return: Page<User> * @author: eleven * @date: 2014-3-25 * @history: Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 修改原因 */ Page<User> queryUserByPage(Pageable pageable); }
/** * * Copyright: Copyright (c) 2012 Asiainfo-Linkage * * [email protected]:2014-3-25 * @ClassName: UserServiceImpl.java * @Description: 使用者服務介面實現類 * * @version: v1.0.0上午9:56:48eleven * @author: elevenSpringDataJpa * * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2014-3-25 eleven v1.0.0 新建 */ package com.xr.service.impl; import java.util.List; import javax.annotation.Resource; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.xr.bean.User; import com.xr.repository.UserRepository; import com.xr.service.UserService; @Service(value = "userService") @Transactional public class UserServiceImpl implements UserService { @Resource private UserRepository userRepository; public void setUserRepository(UserRepository userRepository) { this.userRepository = userRepository; } /* (非 Javadoc) * <p>Title: addUser</p> * <p>Description: </p> * @see service.UserService#addUser() */ @Override public void addUser(User user) { userRepository.save(user); } /* (非 Javadoc) * <p>Title: addUser</p> * <p>Description: </p> * @param list * @see com.xr.service.UserService#addUser(java.util.List) */ @Override public void addUser(List<User> list) { userRepository.save(list); } /* (非 Javadoc) * <p>Title: deleteUser</p> * <p>Description: </p> * @param user * @see com.xr.service.UserService#deleteUser(com.xr.bean.User) */ @Override public void deleteUser(User user) { userRepository.delete(user); } /* (非 Javadoc) * <p>Title: deleteUser</p> * <p>Description: </p> * @param id * @see com.xr.service.UserService#deleteUser(java.lang.String) */ @Override public void deleteUser(String id) { userRepository.delete(id); } /* (非 Javadoc) * <p>Title: deleteUser</p> * <p>Description: </p> * @param list * @see com.xr.service.UserService#deleteUser(java.util.List) */ @Override public void deleteUser(List<User> list) { userRepository.delete(list); } /* (非 Javadoc) * <p>Title: updateUser</p> * <p>Description: </p> * @param user * @see com.xr.service.UserService#updateUser(com.xr.bean.User) */ @Override public void updateUser(User user) { userRepository.save(user); } /* (非 Javadoc) * <p>Title: existUser</p> * <p>Description: </p> * @param id * @return * @see com.xr.service.UserService#existUser(java.lang.String) */ @Override public boolean existUser(String id) { return userRepository.exists(id); } /* (非 Javadoc) * <p>Title: queryUserById</p> * <p>Description: </p> * @param id * @return * @see com.xr.service.UserService#queryUserById(java.lang.String) */ @Override public User queryUserById(String id) { return userRepository.findOne(id); } /* (非 Javadoc) * <p>Title: queryAllUser</p> * <p>Description: </p> * @return * @see com.xr.service.UserService#queryAllUser() */ @Override public List<User> queryAllUser() { return userRepository.findAll(); } /* (非 Javadoc) * <p>Title: queryListUser</p> * <p>Description: </p> * @param list * @return * @see com.xr.service.UserService#queryListUser(java.util.List) */ @Override public List<User> queryListUser(List<String> list) { return userRepository.findAll(list); } /* (非 Javadoc) * <p>Title: queryAllUserBySort</p> * <p>Description: </p> * @param sort * @return * @see com.xr.service.UserService#queryAllUserBySort(org.springframework.data.domain.Sort) */ @Override public List<User> queryAllUserBySort(Sort sort) { return userRepository.findAll(sort); } /* (非 Javadoc) * <p>Title: queryUserByPage</p> * <p>Description: </p> * @param pageable * @return * @see com.xr.service.UserService#queryUserByPage(java.awt.print.Pageable) */ @Override public Page<User> queryUserByPage(Pageable pageable) { return userRepository.findAll(pageable); } }
2.UserServiceTest
其他配置程式碼不變,測試JpaRepository的CrudApi* Copyright: Copyright (c) 2014 Asiainfo-Linkage package com.xr.service; import java.util.ArrayList; import java.util.List; import java.util.UUID; import javax.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.domain.Sort.Order; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.xr.bean.User; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:applicationContext.xml"}) public class UserServiceTest { @Resource private UserService userService; @Test public void test() { //新增 // User user = new User(); // user.setId(UUID.randomUUID().toString()); // user.setName("springdatajpa"); // user.setPwd("123456"); // userService.addUser(user); //批量新增 // User user = null; // List<User> list = new ArrayList<User>(); // for(int i = 0; i < 10; i++){ // user = new User(); // user.setId(UUID.randomUUID().toString()); // user.setName("name" + i); // user.setPwd("pwd" + i); // user.setAge(i); // list.add(user); // } // userService.addUser(list); //刪除 // User user = new User(); // user.setId("009c3691-19ff-4114-987f-9eb36054c768"); // userService.deleteUser(user); //批量刪除 //查詢 // List<String> idList = new ArrayList<String>(); // idList.add("06cd2f98-abb5-485e-87b4-8042b84be7ff"); // List<User> list = userService.queryListUser(idList); // System.out.println(list); // List<User> list = userService.queryAllUserBySort(new Sort(new Order(Direction.DESC, "name"))); // System.out.println(list); Page<User> pageUser = userService.queryUserByPage(new PageRequest(1, 3)); System.out.println(pageUser.getContent()); pageUser = userService.queryUserByPage(new PageRequest(1, 3, new Sort(new Order(Direction.DESC, "name")))); System.out.println(pageUser.getContent()); } }