JSTL - 如何将值传递给 SQL 语句

Posted

技术标签:

【中文标题】JSTL - 如何将值传递给 SQL 语句【英文标题】:JSTL - How can I pass values to SQL statement 【发布时间】:2016-03-21 00:32:32 【问题描述】:
<sql:setDataSource var="snapshot" driver="org.apache.derby.jdbc.ClientDriver"
 url="jdbc:derby://localhost:1527/sample"
 user="app"  password="app"/>

<sql:update dataSource="$snapshot" var="result">
    insert into stock_tbl values ('?','?')
<sql:param value="$symb" />
<sql:param value="$nm" />
</sql:update>

当我在网络浏览器中运行它时,我收到一个错误。

type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: 
insert into stock_tbl values ('?','?')


: UNKNOWN MESSAGE, id 07009 : 
root cause

java.sql.SQLException: UNKNOWN MESSAGE, id 07009 : 
root cause

org.apache.derby.client.am.SqlException: UNKNOWN MESSAGE, id 07009 : 

html 文件 HTML File

【问题讨论】:

我承认我在猜测,但我怀疑你需要在 ? 参数标记周围加上引号。 【参考方案1】:

insert into stock_tbl values ('?','?') 中删除引号。 2 ? 被解释为值而不是占位符。

这是一个例子 http://www.codejava.net/java-ee/jstl/jstl-sql-tag-param

【讨论】:

以上是关于JSTL - 如何将值传递给 SQL 语句的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SQL 查询将值传递给具有空间/地理数据类型的存储过程

我可以通过查询将值传递给 SQL 触发器吗?

将值传递给 Worklight SQL 适配器中的 IN 运算符

如何将值从组件传递给道具并设置状态

通过if else语句将值传递给数据库

如何将值传递给休眠的sqlRestriction?