实现

以下是实现的逻辑及方法。
注意:此方法一定要进行充分的权限校验,否则很容易被攻击。

public class ExcuteSqlController {
	@Autowired
    MeasureMapperDef mapperDef;
    @Autowired
    HttpServletRequest httpServletRequest;
    
    private static final String EXCUTE_SQL_SCRET = "executedeleteSql-super-headerScret";

	@PostMapping("testSql")
    @ApiOperation("执行sql")
	public WebResponse executedeleteSql(@RequestBody SqlDto sqlDto) {
        if (!EXCUTE_SQL_SCRET.equals(sqlDto.getValid())){
            return ResponseUtil.success("无权访问");
        }
        List<Map<String, Object>> executeResult = mapperDef.executedeleteSql(sqlDto.getSql());
        return ResponseUtil.success(executeResult, "获取数据成功");
	}
}
  • 请求的body
{
	"sql":"SELECT * FROM user;",
	"valid":"executedeleteSql-super-headerScret"
}
@Mapper
public interface MeasureMapperDef {
    List<Map<String, Object>> executedeleteSql(String value);
}
<select id="executedeleteSql" parameterType="String" resultType="map">
		${value}
</select>

划重点(∩_∩)



本人程序媛一枚,因为离港澳较近,周末兼职港澳人肉代购。

欢迎各位大佬添加本人微信,还会经常有点赞活动送价值不菲的小礼品哦。

即使现在不需要代购,等以后有了女(男)朋友、有了宝宝就肯定会需要的喽。

动动手指头,扫码一下,就当是对本博文的支持嘛,也是对一个平凡、勤劳、勇敢、秀外慧中等等优点的程序媛莫大的支持哈。
前端请求完整执行sql

相关文章:

猜你喜欢
相关资源
相似解决方案