springboot之自定义查询query

心和梦的方向      2022-04-09     172

关键词:

   下面讲解下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查询结果:

 

springboot系列之自定义枚举类的数据校验注解

SpringBoot系列之自定义枚举类的数据校验注解业务场景:数据校验,需要对枚举类型的数据传参,进行数据校验,不能随便传参。拓展,支持多个参数的枚举数据校验在网上找到很多参考资料,所以本博客基于这些博客进行拓展... 查看详情

springboot整合springsecurity之自定义退出(代码片段)

一security默认的退出Springsecurity默认实现了logout退出,访问/logout: 实现逻辑:点击“LogOut”退出成功。退出后访问其它url判断是否成功退出。二自定义退出2.1配置文件中配置在WebSecurityConfifig的protectedvoidconfifigure(HttpSe... 查看详情

springboot之自定义场景启动器(代码片段)

1.场景启动器SpringBoot的自动配置原理中不可或缺的就是那些已经定义好的场景启动器,只要导入某个场景启动器我们的应用就拥有了该场景下的一些核心Bean,有利于快速开发,比如引入Web的场景启动器:<dependen... 查看详情

springboot整合springsecurity之自定义认证(代码片段)

一自定义认证页面1.1说明1.如果用户没有自定义登录页面,springsecurity默认会启动自身内部的登录页面,尽管自动生成的登录页面很方便快速启动和运行,但大多数应用程序都希望定义自己的登录页面。1.2自定义登录... 查看详情

玩转springboot原理篇(自动装配前凑之自定义stater)(代码片段)

的pom文件中可以看出,mybatis-spring-boot-starter包会自动引入mybatis-spring-boot-autoconfigure以及mybatis相关依赖包。SqlSessionFactoryExceptionlogger.debug(encoding=xmlns:xsi=xsi:schemaLocation=<modelVersion><groupI 查看详情

springboot自动化配置之自定义一个starter

大家好,我是小悟SpringBoot官网各类启动器:​​https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-build-systems.html#using-boot-starter​​SpringBoot将所有的功能场景都抽取出来,做成一个个starter,只需要在项目里面引入这些starte... 查看详情

springcloud系列之自定义gatewayfilterfactory(代码片段)

SpringCloud系列之自定义GatewayFilterFactory学习目的:知道创建一个网关sample知道网关的基本配置知道自定义GatewayFilterFactory类环境准备:JDK1.8SpringBoot2.2.3SpringCloud(Hoxton.SR7)Maven3.2+开发工具IntelliJIDEAsmartGit新增SpringBootInitializer项目:N 查看详情

drf项目之自定义分页器(代码片段)

在项目中,我们多需要自定义分页器。代码实现fromrest_framework.paginationimportPageNumberPaginationfromrest_framework.responseimportResponseclassPageNum(PageNumberPagination):page_size=5#后端指定每页显示数量page_size_query_param=‘pag 查看详情

springboot系列之自定义枚举类的数据校验注解(代码片段)

SpringBoot系列之自定义枚举类的数据校验注解业务场景:数据校验,需要对枚举类型的数据传参,进行数据校验,不能随便传参。拓展,支持多个参数的枚举数据校验在网上找到很多参考资料,所以本博客... 查看详情

如何在springboot API中自定义@query的响应

】如何在springbootAPI中自定义@query的响应【英文标题】:Howtocustomizeresponsefrom@queryinspringbootAPI【发布时间】:2020-01-1809:58:13【问题描述】:我在SpringBoot中的API@query响应有问题。首先我将向你展示我的代码:@RestController@RequestMapping("... 查看详情

linux高级篇之自定义日志服务

参考技术A在/etc/rsyslog.conf中添加一个日志文件/var/log/hsp.log,当有事件发送时(比如SSHD服务相关事件)、该文件接收到信息并保存。演示重启、登录的情况、看看是否有日志保存1、编辑日志记录文件位置2、增加自定义的日志3、自... 查看详情

Laravel 查询错误 - 调用未定义的方法 Illuminate\Database\Query\Builder::query()

】Laravel查询错误-调用未定义的方法Illuminate\\\\Database\\\\Query\\\\Builder::query()【英文标题】:LaravelQueryError-CalltoundefinedmethodIlluminate\\Database\\Query\\Builder::query()Laravel查询错误-调用未定义的方法Illuminate\\Database\\Query\\Builder: 查看详情

使用 MongoDB 错误 com.mongodb.util.JSONParseException(uPDATED) 在 SpringBoot 中自定义 @Query

】使用MongoDB错误com.mongodb.util.JSONParseException(uPDATED)在SpringBoot中自定义@Query【英文标题】:Custom@QueryinSpringBootusingMongoDBerrorcom.mongodb.util.JSONParseException(uPDATED)【发布时间】:2019-07-0521:44:22【问题描述】:在Java中使用MongoDB请注意, 查看详情

Spring boot:Query方法中的可选参数查询

】Springboot:Query方法中的可选参数查询【英文标题】:Springboot:OptionalparameterqueryinQuerymethod【发布时间】:2019-03-1603:16:17【问题描述】:我是SpringBoot和休眠的新手。在这里,我正在尝试运行基于搜索的可选参数查询,我可以在其... 查看详情

vue之自定义组件

组件(Component)是我的理解就是自定义元素.(一)自定义组件任何一个以.vue结尾的组件内都可以写自定义组件,一个自定义组件的使用主要2个步骤:1.注册:上代码  2.组件使用     查看详情

spring之自定义事件

编写自定义事件的简单流程如下:(1)编写CustomEvent.javapackagecom.tutorialspoint;importorg.springframework.context.ApplicationEvent;publicclassCustomEventextendsApplicationEvent{publicCustomEvent(Objectsource){super(sou 查看详情

Spring Boot请建议自定义查询

】SpringBoot请建议自定义查询【英文标题】:SpringBootpleasesuggestcustomQueryfor【发布时间】:2017-11-1707:33:02【问题描述】:select*fromngb.subsidywhere(有效开始日期,有效结束日期)重叠(\'2017-08-01\'::DATE,\'2017-08-01\'::DATE)按有效开始日期asc... 查看详情

springcloud系列之自定义gatewayfilterfactory(代码片段)

...本配置知道自定义GatewayFilterFactory类环境准备:JDK1.8SpringBoot2.2.3SpringCloud(Hoxton.SR7)Maven3.2+开发工具IntelliJIDEAsmartGit新增SpringBootInitializer项目:NewModule->SpringInitializer,选择jdk版本,至少jdk8packaging选择jar,javav... 查看详情