阿麥Mai 2023-03-03 13:59 采纳率: 57.1%
浏览 30
已结题

JeeSite数据库获取不了对应的value值

@ResponseBody
    @RequiresPermissions("msg:msgInner:view")
    @RequestMapping(value = {"test", ""})
    public String test(HttpServletRequest request){
        int value1 = 1;
        int value2 = 1;
        int value3 = 1;

        try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jeesite", "root", "282469907");
             Statement statement = connection.createStatement()){

            statement.executeUpdate("UPDATE jeesite.cfpdata SET 衣 = " + request.getParameter("value1"));
            statement.executeUpdate("UPDATE jeesite.cfpdata SET 食 = " + request.getParameter("value2"));
            statement.executeUpdate("UPDATE jeesite.cfpdata SET 住 = " + request.getParameter("value3"));
            statement.executeUpdate("UPDATE jeesite.cfpdata SET 行 = " + request.getParameter("value4"));
            statement.executeUpdate("UPDATE jeesite.cfpdata SET 用 = " + request.getParameter("value5"));
            statement.executeUpdate("UPDATE jeesite.cfpdata SET 总计 = " + request.getParameter("value6"));
            statement.executeBatch();

        }catch (SQLException e){
            e.printStackTrace();
        }
        return request.getParameter("value1");
    }

数据库获取不了对应的value值,只能获取第一个,其他都为null是为什么?

img

  • 写回答

2条回答 默认 最新

  • 社区专家-Monster-XH 2023-03-03 14:51
    关注

    基于Monster 组和GPT的调写:
    由于在每个语句中使用了不同的参数名,因此只有第一个语句中的 value1 参数被正确地获取了。在其他更新语句中,你需要将参数名更改为对应的值,例如,第二个更新语句中应该使用 value2 参数。

    
    @ResponseBody
    @RequiresPermissions("msg:msgInner:view")
    @RequestMapping(value = {"test", ""})
    public String test(HttpServletRequest request){
        try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jeesite", "root", "282469907");
             Statement statement = connection.createStatement()){
    
            String sql = "UPDATE jeesite.cfpdata SET 衣 = ?, 食 = ?, 住 = ?, 行 = ?, 用 = ?, 总计 = ?";
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1, request.getParameter("value1"));
            ps.setString(2, request.getParameter("value2"));
            ps.setString(3, request.getParameter("value3"));
            ps.setString(4, request.getParameter("value4"));
            ps.setString(5, request.getParameter("value5"));
            ps.setString(6, request.getParameter("value6"));
            ps.executeUpdate();
            
        }catch (SQLException e){
            e.printStackTrace();
        }
        return "更新成功";
    }
    
    
    

    用了一个 PreparedStatement 对象来执行更新语句,这样可以用 setString() 方法来设置每个参数的值。另外,用了一个包含所有参数的单一 SQL 语句,而不是多个单独的语句,这样可以更好地保证数据的一致性。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月11日
  • 已采纳回答 3月3日
  • 创建了问题 3月3日

悬赏问题

  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错