# 问题情境
今天在做达梦数据库的适配工作 (DM7),项目在执行sql语句的时候报错了
错误信息如下所示:
Error in adding new subscriber: 第 1 行, 第 20 列[]附近出现错误
想到sql语句,哪儿有 [] 这个中括号呢? 可能是其他地方的问题
通过打log,发现如下位置
// ps = conn.prepareStatement(query, new String[]{"subscriber_id"});
如果使用如下这种是不会报错的
// ps = conn.prepareStatement(query);
后来考虑到可能达梦数据库不支持列自增,后来参考主键回传方案,如下所示
ps = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
在进行达梦数据库(DM7)的项目适配过程中,遇到SQL语句执行错误,详细错误信息为“Error in adding new subscriber:第1行,第20列[]附近出现错误”。通过排查,发现是PreparedStatement在参数设置上存在问题,最终采用主键回传方案解决,使用PreparedStatement.RETURN_GENERATED_KEYS替代原有的参数数组。
1272

被折叠的 条评论
为什么被折叠?



