【发布时间】:2011-12-21 07:40:18
【问题描述】:
我必须将 HTML 插入到 Oracle DB 表的列中。我创建了插入语句,并使用 apache commons StringEscapeUtils.Escapesql 和 StringEscapeUtils.EscapeHtml 来尝试插入该 HTML。但我得到一个 SQL 命令未正确结束的异常。
如果我插入 null 则语句通过正常。请帮忙..
【问题讨论】:
我必须将 HTML 插入到 Oracle DB 表的列中。我创建了插入语句,并使用 apache commons StringEscapeUtils.Escapesql 和 StringEscapeUtils.EscapeHtml 来尝试插入该 HTML。但我得到一个 SQL 命令未正确结束的异常。
如果我插入 null 则语句通过正常。请帮忙..
【问题讨论】:
您不应该使用任何这些转义方法。
无需转义 HTML。当某些用户编写一些文本并且您希望在 HTML 页面中按原样显示它时,转义 HTML 很有用。因此,您希望将> 转换为> 等。数据库不需要这个,并且在从数据库中加载它时您必须取消转义以获取您的HTML。这是完全没有必要的。
HTML 必须经过 SQL 转义,但这是 JDBC 驱动程序的工作。只需使用准备好的语句,并使用 setString() 方法绑定 HTML 字符串,驱动程序将为您转义所有内容。阅读JDBC tutorial。
【讨论】: