• spring data jap操作


    package com.example.demo;
    
    import com.example.entity.UserJ;
    import com.example.respository.UserJRespository;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.data.domain.Page;
    import org.springframework.data.domain.PageRequest;
    import org.springframework.data.domain.Sort;
    import org.springframework.data.jpa.domain.Specification;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import javax.persistence.EntityManager;
    import javax.persistence.criteria.CriteriaBuilder;
    import javax.persistence.criteria.CriteriaQuery;
    import javax.persistence.criteria.Predicate;
    import javax.persistence.criteria.Root;
    import java.util.ArrayList;
    import java.util.List;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class TestJpaCurd {
        @Autowired
        private UserJRespository userJRespository;
    
        @Autowired
        private EntityManager entityManager;
    
        /**
         * 插入或者是更新一条数据
         */
        @Test
        public void insertAndUpdate() {
            UserJ userJ = new UserJ();
            userJ.setUsername("alex222");
            userJ.setEmail("wangzhilei@jd.com");
            userJ.setId(1);
            userJRespository.save(userJ);
        }
    
        /**
         * 删除一条数据
         */
        @Test
        public void delete() {
            userJRespository.deleteById(1);
        }
    
        /**
         * 获取所有的数据
         *
         * @return
         */
        @Test
        public void getAll() {
            List<UserJ> all = userJRespository.findAll();
            for (UserJ userJ : all) {
                System.out.println(userJ);
            }
        }
    
        /**
         * 查询所有并+分页+排序
         * <p>
         * 从0页开始
         * 用最新的PageRequest.of来分页
         */
        @Test
        public void getOneData() {
            Sort sort = new Sort(Sort.Direction.DESC, "id");
            PageRequest pageRequest = PageRequest.of(0, 1, sort);
            /**
             * 使用匿名内部类
             * 构建查询条件
             * root 代表查询的对象
             * criteriaBuilder 条件封闭器,如and or like 等
             *  criteriaQuery 查询的条件
             */
            Specification<UserJ> specification = new Specification<UserJ>() {
                @Override
                public Predicate toPredicate(Root<UserJ> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder cb) {
                    // 单个条件查询
    //                Predicate predicate = cb.equal(root.get("email"), "sqyinchao@jd.com");
                    /**
                     * 多条件查询
                     */
                    List<Predicate> list = new ArrayList<>();
                    list.add(cb.equal(root.get("email"), "sqyinchao@jd.com"));
                    list.add(cb.equal(root.get("email"), "wangzhilei@jd.com"));
                    // 这里面放的是可变参数,则可以放一个数组进去,然后给拆分 相当于js中的...符号
                    Predicate[] predicates = new Predicate[list.size()];
                    return cb.or(list.toArray(predicates));
                }
            };
            Page<UserJ> all = userJRespository.findAll(specification, pageRequest);
            for (UserJ userJ : all) {
                System.out.println(userJ);
            }
        }
    }
    

      

  • 相关阅读:
    日总结07
    Flask使用json或jsonify返回响应的数据
    日总结06
    tensorflow 代码流程02
    日总结05
    题解 P1505 [国家集训队]旅游
    数学期望
    常用软件
    HTMLHelper
    DateHelper(辅助类)
  • 原文地址:https://www.cnblogs.com/leigepython/p/10141275.html
Copyright © 2020-2023  润新知