zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }
    

      

  • 相关阅读:
    WHMCS系统API调用
    Zend Guard Loader/Zend Loader是干什么的
    代理IP收集
    Jenkins 2.x版本的节点配置选项更新
    Visual Studio 2015 未响应/已停止工作的问题解决
    Visual Studio多版本进行切换的研究
    商城产品如何应对多个客户不同的需求修改并发布对应客户的文件
    Visual Studio插件
    微软注册dll在dotnet开发时起到缓存的作用
    Visual Studio 2015出现Cannot find one or more components. Please reinstall the application.的问题解决
  • 原文地址:https://www.cnblogs.com/leigepython/p/10141275.html
Copyright © 2011-2022 走看看