java jdbc 参数 转义_在JDBC PreparedStatement参数中转义两个单引号

我试图在Oracle 10g数据库表中插入值。我想为列插入值,名字并且值有两个像这样的单引号: O'Rielly's Edition。在JDBC PreparedStatement参数中转义两个单引号

我正在使用JDBC的准备语句传递参数值名字。它用单引号(O'Rielly)正常工作。

但是,当我使用两个单引号它给SQL错误ORA-00907: missing right parenthesis。有关如何处理PreparedStatement中的两个单引号的任何建议? 我的查询如下:

StringBuffer strUpdateUserQuery = new StringBuffer("UPDATE USERS set FNAME = ? , LNAME = ?, USER_TIMEZONE = ?, CREATED_DATE = CURRENT_DATE, ACTIVE_STATUS = ?, APPROVAL_STATUS = ?,USER_GROUP_ID = ? where USER_ID = ?");

pstmt = conn.prepareStatement(strUpdateUserQuery.toString());

pstmt.setString(1, userVO.getFirstName());

pstmt.setString(2, userVO.getLastName());

pstmt.setString(3, userVO.getStrTimeZone());

pstmt.setString(4, userVO.getStatus());

pstmt.setString(5, userVO.getStrAppStatus());

pstmt.setInt(6, Integer.parseInt(userVO.getUserGroupId()));

pstmt.setString(7, userVO.getUserId());

int iCount = pstmt.executeUpdate(strUpdateUserQuery.toString());

而且我得到的错误是如下:

ORA-00907:缺少右括号\ n

有了上面的代码,我我正在解决这个问题。

+0

显示你正在尝试使用preparedStatement时插入什么的例子。 –

+3

您不需要在绑定值中转义单引号。请编辑您的问题以显示您正在使用的实际准备好的陈述。 (我想,这个价值正如它的约束)。什么是你回来的完整错误? –

+3

PreparedStatement的重要优点之一是您无需担心转义。这听起来好像你没有正确使用PreparedStatement。 ** [编辑] **您的问题,并添加您使用的代码。做**不**在评论中发布代码。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值