SpringDataJpa学习(八) Spring Data JPA的各种基本查询示例

本文介绍了Spring Data JPA中对数据库的基本操作,包括根据ID查询、保存/更新、删除、获取所有记录、计数以及检查ID是否存在等方法的使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CustomerTest.java

  1. 根据id查询 findById((long) id)
  2. 保存或更新 save()
  3. 删除deleteById((long) id)
  4. 查询所有 findAll()
  5. 统计查询 count()
  6. 判断id为某个是否存在 existsById((long) id)
  7. 根据id从数据库查询 getOne((long) id)
package cn.ysk.test;

import cn.ysk.dao.CustomerDao;
import cn.ysk.domian.Customer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Optional;

/**
 * @Author ysk
 * @Date 2020/3/6 17:28
 * @Version 1.0
 */
@RunWith(SpringJUnit4ClassRunner.class) //声明spring提供的单元测试环境
@ContextConfiguration(locations = "classpath*:applicationContext.xml") //指定spring容器的配置信息
public class CustomerTest {

    @Autowired
    private CustomerDao customerDao;

    /**
     * 根据id查询
     */
    @Test
    public void testFindOne(){
        Optional<Customer> customer =  customerDao.findById((long) 2);
        System.out.println(customer);
    }

    /**
     * save : 保存或者更新
     * 根据传递的对象是否存在主键id
     * 如果没有id :保存
     * 如果有id : 更新
     */
    @Test
    public void testSave(){

        Customer cus = new Customer();
        cus.setCustName("喵喵");
        cus.setCustIndustry("罐头");
        customerDao.save(cus);
    }

    /**
     * 删除
     */
    @Test
    public void testDelete(){
        customerDao.deleteById((long) 5);
    }

    /**
     * 查询所有
     */
    @Test
    public void testFindAll(){
        List<Customer> list = customerDao.findAll();
        for (Object object : list){
            System.out.println(object);
        }

    }

    /**
     * 统计查询:查询客户的总数量
     * count: 统计总条数
     */
    @Test
    public void testCount(){
        long count = customerDao.count();   //查询全部的客户数量
        System.out.println(count);
    }

    /**
     * 判断id为4的客户是否存在
     *
     */
    @Test
    public void testExists(){
        boolean ex = customerDao.existsById((long) 4);
        System.out.println("id为4的客户 是否存在:"+ex);
    }


    /**
     * 根据id从数据库查询
     * @Transactional : 保证getOne能正常运行
     *
     * findOne:
     *  em.find()   :立即加载
     * getOne:
     *  em.getReference :延迟加载
     */
    @Test
    @Transactional
    public void testGetOne(){
        Customer customer = customerDao.getOne((long) 4);
        System.out.println(customer);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值