SpringBoot之自定义查询Query

   下面讲解下SpringBoot之自定义查询Query的实例

SpringBoot之自定义查询Query有HQL语句查询(Hibernate),还可以采用sql语句本地查询

BookDao类查询接口

 1 package com.hik.dao;
 2 
 3 import java.util.List;
 4 
 5 import org.springframework.data.jpa.repository.JpaRepository;
 6 import org.springframework.data.jpa.repository.Query;
 7 
 8 import com.hik.entity.Book;
 9 
10 /**
11  * 图书Dao接口
12  * @author jed
13  *
14  */
15 public interface BookDao extends JpaRepository<Book, Integer>{
16     
17     //Hql语句查询
18     @Query("select b from Book b where b.bookName like %?1%")
19     public List<Book> findByBookName(String bookName);
20     
21     //本地sql语句查询
22     @Query(value="select * from t_book order by RAND() limit ?1",nativeQuery=true)
23     public List<Book> randomList(Integer n);
24 }
View Code

BookController类

 1 package com.hik.Controller;
 2 
 3 import java.util.List;
 4 
 5 import javax.annotation.Resource;
 6 
 7 import org.springframework.stereotype.Controller;
 8 import org.springframework.web.bind.annotation.GetMapping;
 9 import org.springframework.web.bind.annotation.PathVariable;
10 import org.springframework.web.bind.annotation.PostMapping;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 import org.springframework.web.bind.annotation.RequestMethod;
13 import org.springframework.web.bind.annotation.ResponseBody;
14 import org.springframework.web.servlet.ModelAndView;
15 
16 import com.hik.dao.BookDao;
17 import com.hik.entity.Book;
18 
19 /**
20  * Book控制类
21  * @author jed
22  *
23  */
24 @Controller
25 @RequestMapping("/book")
26 public class BookController {
27     
28     @Resource
29     private BookDao bookDao;
30     
31     /**
32      * 查询所有图书
33      * @return
34      */
35     @RequestMapping(value="/list")
36     public ModelAndView list() {
37         ModelAndView mav = new ModelAndView ();
38         mav.addObject("bookList", bookDao.findAll());
39         mav.setViewName("bookList");
40         return mav;
41     }
42 
43     /**
44      * 添加图书
45      * @param book
46      * @return
47      */
48     @RequestMapping(value="/add", method=RequestMethod.POST)
49     public String add(Book book) {
50         bookDao.save(book);
51         return "forward:/book/list";
52     }
53     
54     @GetMapping(value="/preUpdate/{id}")
55     public ModelAndView preUpdate(@PathVariable("id") Integer id) {
56         ModelAndView mav = new ModelAndView();
57         mav.addObject("book", bookDao.getOne(id));
58         mav.setViewName("bookUpdate");
59         return mav;
60     }
61     
62     /**
63      * 修改图书
64      * @param book
65      * @return
66      */
67     @PostMapping(value="/update")
68     public String update(Book book) {
69         bookDao.save(book);
70         return "forward:/book/list";
71     }
72     
73     /**
74      * 删除图书
75      * @param id
76      * @return
77      */
78     @RequestMapping(value="/delete",method = RequestMethod.GET)
79     public String delete(Integer id) {
80         bookDao.delete(id);
81         return "forward:/book/list";
82     }
83     
84     @ResponseBody
85     @GetMapping(value="/queryByName")
86     public List<Book> queryByName() {
87         return bookDao.findByBookName("思想");
88     }
89     
90     @ResponseBody
91     @GetMapping(value="/randomList")
92     public List<Book> randomList(){
93         return bookDao.randomList(2);
94     }
95 }
View Code

hql查询结果:

 

 本地sql查询结果:

 

转载于:https://www.cnblogs.com/jedjia/p/query.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值