1. package com.cedric.dao;
    2. import com.cedric.domain.Customer;
    3. import org.springframework.data.jpa.repository.JpaRepository;
    4. import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
    5. /**
    6. * 符合SpringData的dao层的接口规范
    7. * JpaRepository<操作的实体类型,实体类中主键的类型>
    8. * * 封装了基本CRUD操作
    9. * JpaSpecificationExecutor<操作的实体类型>
    10. * * 封装了复杂查询(分页)
    11. */
    12. public interface CustomerDao extends JpaRepository<Customer,Long>, JpaSpecificationExecutor<Customer> {
    13. }
    1. package com.cedric.test;
    2. import com.cedric.dao.CustomerDao;
    3. import com.cedric.domain.Customer;
    4. import org.junit.Test;
    5. import org.junit.runner.RunWith;
    6. import org.springframework.beans.factory.annotation.Autowired;
    7. import org.springframework.test.context.ContextConfiguration;
    8. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    9. import java.util.List;
    10. @RunWith(SpringJUnit4ClassRunner.class) //声明spring提供的单元测试
    11. @ContextConfiguration(locations = "classpath:applicationContext.xml") //指定spring容器的配置信息
    12. public class CustomerDaoTest {
    13. @Autowired
    14. private CustomerDao customerDao;
    15. /**
    16. * 根据id查询
    17. */
    18. @Test
    19. public void testFindOne(){
    20. Customer customer = customerDao.findOne(3l);
    21. System.out.println(customer);
    22. }
    23. /**
    24. * save:保存或更新
    25. * 根据传递的对象是否存在主键id,
    26. * 如果没有id主键属性:保存
    27. * 存在id主键属性,根据id查询数据,更新数据
    28. */
    29. @Test
    30. public void testSave(){
    31. Customer customer = new Customer();
    32. customer.setCustName("农夫山泉");
    33. customer.setCustLevel("Vip");
    34. customer.setCustIndustry("营销");
    35. customerDao.save(customer);
    36. }
    37. @Test
    38. public void testUpdate(){
    39. Customer customer = new Customer();
    40. customer.setCustId(4l);
    41. customer.setCustName("农夫山泉有点甜");
    42. customerDao.save(customer);
    43. }
    44. @Test
    45. public void testDelete(){
    46. customerDao.delete(5l);
    47. }
    48. /**
    49. * 查询所有
    50. */
    51. @Test
    52. public void testFindAll(){
    53. List<Customer> list = customerDao.findAll();
    54. for (Customer customer : list){
    55. System.out.println(customer);
    56. }
    57. }
    58. }