springboot快速写API,直接传sql作为参数
Posted Z-hhhhh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot快速写API,直接传sql作为参数相关的知识,希望对你有一定的参考价值。
很久没写过接口了,很多都忘记了,找了找资料都是比较常见的方式,没有直接用sql做参数的。
因为业务用数据可能会改,所以写成直接传sql的方式,后期省去了改的活,一劳永逸
一、新建工程
以上内容也可以手动在pom里添加
二、配置
用到的pom如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
先写配置文件
spring.datasource.url=jdbc:mysql://xx.xx.xx.xx:xxxx/test?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
spring.datasource.username=xxx
spring.datasource.password=xxx
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
server.port=8001
三、代码部分
model层
1、SQLModel
public class SQLModel
private String sql;
public String getSql()
return sql;
public void setSql(String sql)
this.sql = sql;
2、ResultResponse
public class ResultResponse<T>
private List<T> data;
public List<T> getData()
return data;
public void setData(List<T> data)
this.data = data;
controller层
TestController
@RestController
@RequestMapping("/test")
public class TestController
@RequestMapping("/ping")
public String ping()
System.out.println("123");
return "pong";
@Autowired
private JdbcTemplate jdbcTemplate;
@RequestMapping("/getSqlResult")
public ResultResponse getSqlResult(@RequestBody SQLModel sqlModel)
String sql = sqlModel.getSql();
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
ResultResponse resultResponse = new ResultResponse();
resultResponse.setData(list);
return resultResponse;
四、测试
配置里写的端口是8001,
就可以访问了
localhost:8001
分别访问上面两个
localhost:8001/test
能看到页面有
123
说明正常了
最后一个就是重头戏了,直接传sql就行了
为了方便,用怕postman测试
用post方式,防止字符串超长
写在最后:
其实sql加密会比较好,但是这里没写,自己写的时候可以试一试,也不复杂,多个解密过程而已
以上是关于springboot快速写API,直接传sql作为参数的主要内容,如果未能解决你的问题,请参考以下文章
mysql 存储过程 数据库表名字段作为参数传递给存储过程的方法