com.microsoft.sqlserver.jdbc.SQLServerException: 索引 7 超出范围。

今天在做项目的时候,使用的jdbc底层增加,然后出现了个问题,找了好久没有找出来是什么问题,后来在网上查了下,发现别人都说是?写成了中文的了,于是我就返回来看,没看出来,继续找,前前后后折腾了估计有半小时还是找不出来,所有的问题都排除了,又回到了?上,难道真的是我写成了中文的了吗,重新切换输入法输入?的时候发现果然是这里的错,?写成了中文的了,大家以后一定得仔细点,别走我的老路了!下面的代码:
错误的代码:

public int addAccount(Account account) {
        int rel=0;
        String sql="insert INTO account(name,types,items_id,property_id,money,create_date,bz) " +
                "VALUES(?,?,?,?,?,?,?)";
        List<Object>prams=new ArrayList<Object>();
        prams.add(account.getName());
        prams.add(account.getTypes());
        prams.add(account.getItem_id());
        prams.add(account.getProperty_id());
        prams.add(account.getMoney());
        prams.add(account.getCreate_date());
        prams.add(account.getBz());
        System.out.println(sql);
        try {
            rel=connDbBean.executeUpdate(sql, prams);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            connDbBean.closeAll();
        }
        return rel;
    }

正确的代码:

    public int addAccount(Account account) {
        int rel=0;
        String sql="insert INTO account(name,types,items_id,property_id,money,create_date,bz) " +
                "VALUES(?,?,?,?,?,?,?)";
        List<Object>prams=new ArrayList<Object>();
        prams.add(account.getName());
        prams.add(account.getTypes());
        prams.add(account.getItem_id());
        prams.add(account.getProperty_id());
        prams.add(account.getMoney());
        prams.add(account.getCreate_date());
        prams.add(account.getBz());
        System.out.println(sql);
        try {
            rel=connDbBean.executeUpdate(sql, prams);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            connDbBean.closeAll();
        }
        return rel;
    }

他两的区别就在于sql语句中的问号,前者是中文输入法下的问号,后者是英文输入法下的问号,虽然看起来区别不是很大,但是程序是会报错的!
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆雄雄

哎,貌似还没开张来着呢~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值