美文网首页
如何自定义SQL脚本通过接口操作数据库(没有数据库修改权限却想更

如何自定义SQL脚本通过接口操作数据库(没有数据库修改权限却想更

作者: 燃灯道童 | 来源:发表于2020-03-20 17:32 被阅读0次

背景:数据库没有修改权限,先要修改数据库中的数据简直困难重重。

平常写的接口,都是固定某张表的增删改查的操作。

能不能写一个接口,传值为自定义的sql,通过接口调用去修改数据库。

示例如下,通过get请求调用。

可以用postman或者浏览器里输入地址(要确定项目发布后外网是否可以访问。)

修改的示例:

https://IP:port/xx/db/operation?value=update t_user set nick_name = '杨过' where nick_name = '奔跑吧9302'

这样就可以跟随环境修改相应的数据库了。(因为配置文件中有相应的数据库连接)

@Controller

@RequestMapping(value ="/db")

@Api(tags ="数据库的操作")

@Slf4j

public class DBControllerextends BaseController {

@Autowired

    InnerHouseServiceinnerHouseService;

    @RequestMapping(value ="/operation" , method = RequestMethod.GET)

@ResponseBody

    @ApiOperation(value="db", notes="数据库的操作")

public BaseResDTO>>InnerHouseQueryCommon(String value)throws Exception {

log.info("操作数据库开始,脚本为"+value);

        List> linkedHashMaps =innerHouseService.ExecutionScript(value);

        BaseResDTO>> res =new BaseResDTO<>();

        res.setMessage("脚本执行成功。");

        res.setCode("success");

        res.setDataBody(linkedHashMaps);

        return res;

    }

}
@Service

public class InnerHouseService {

@Autowired

    InnerHouseMapperinnerHouseMapper;

    public List>ExecutionScript(String value) {

return innerHouseMapper.superManagerSelect(value);

    }

}

XML文件的内容

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.fulan.readygo.mapper.backdoor.InnerHouseMapper">

  <select id="superManagerSelect" parameterType="String" resultType="java.util.LinkedHashMap">

    ${value}

</mapper>

以前用mybatis都是针对一个表的增删改查,用这个就可以对该数据库中的任意表进行操作了。

相关文章

网友评论

      本文标题:如何自定义SQL脚本通过接口操作数据库(没有数据库修改权限却想更

      本文链接:https://www.haomeiwen.com/subject/srxsyhtx.html