1.删改
修改:
// 修改 @Test public void testUpdate() { // 判断数据库中是否有指定id的数据,如果没有则进行保存,如果有就进行更新 Article article = new Article(); article.setId(1L); article.setTitle("疯狂Java"); article.setContent("小伙子,还年轻,转行吧"); articleDao.save(article); // articleDao.saveAll(Article) }
删除:
// 删除 @Test public void testDelete() { // articleDao.delete(Article); // articleDao.deleteAll(); // articleDao.deleteAll(Iterable); articleDao.deleteById(1L); }
2.接口方法查询
查询所有:
@Test public void testFindAll() { Iterable<Article> iterable = articleDao.findAll(); for (Article article : iterable) { System.out.println(article); } }
主键查询:
@Test public void testFindById() { Optional<Article> opt = articleDao.findById(20L); System.out.println(opt.get()); }
分页查询:
@Test public void testFindAllWithPage() { Page<Article> page = articleDao.findAll(PageRequest.of(0, 3)); System.out.println("总页数:" + page.getTotalPages()); System.out.println("总记录数:" + page.getTotalElements()); System.out.println("当前页:" + page.getNumber()); for (Article article : page.getContent()) { System.out.println(article); } }
排序查询:
@Test public void testFindAllWithSort() { Iterable<Article> iterable = articleDao.findAll(Sort.by(Sort.Order.desc("id"))); for (Article article : iterable) { System.out.println(article); } }
分页加排序查询:
@Test public void testFindAllWithPageAndSort() { PageRequest page = PageRequest.of(1, 10, Sort.by(Sort.Order.desc("id"))); Page<Article> all = articleDao.findAll(page); System.out.println("总页数:" + all.getTotalPages()); System.out.println("总记录数:" + all.getTotalElements()); System.out.println("当前页:" + all.getNumber()); for (Article article : all.getContent()) { System.out.println(article); } }
3.命名规则查询
es的命名规则跟jpa基本一致,常见的如下:
dao层接口新增方法:
// 根据标题查询 List<Article> findByTitle(String title); // 根据标题或内容查询 List<Article> findByTitleOrContent(String title, String content); // 根据标题或内容查询(含分页) Page<Article> findByTitleOrContent(String title, String content, Pageable pageable);
测试:
// 根据标题查询 @Test public void testFindByTitle() { List<Article> list = articleDao.findByTitle("java"); for (Article article : list) { System.out.println(article); } } // 根据标题或内容查询 @Test public void testFindByTitleOrContent() { List<Article> list = articleDao.findByTitleOrContent("哈哈","入门"); for (Article article : list) { System.out.println(article); } } // 根据标题或内容查询(含分页) @Test public void testFindByTitleOrContentAndPage() { PageRequest pageRequest = PageRequest.of(2, 3); Page<Article> page = articleDao.findByTitleOrContent("哈哈", "入门", pageRequest); for (Article article : page) { System.out.println(article); } }