Java 如何从JDBC调用getter?

Java 如何从JDBC调用getter?,java,jdbc,Java,Jdbc,我正在执行一个更新,我想将从getter返回的值插入到my表中 statement.executeUpdate("INSERT INTO my_table " + "VALUES(myClass.getValue(), 'abcd',now())"); 我尝试过调试,发现字符串值和日期时间执行正确。然而,当我调用getter时,它给了我一个例外。它显示的详细信息是函数myClass.getValue不存在 我的进口货物都准备好了。有什么想法吗?您需要对myClass对象进行

我正在执行一个更新,我想将从getter返回的值插入到my表中

statement.executeUpdate("INSERT INTO my_table " +
          "VALUES(myClass.getValue(), 'abcd',now())");
我尝试过调试,发现字符串值和日期时间执行正确。然而,当我调用getter时,它给了我一个例外。它显示的详细信息是函数myClass.getValue不存在


我的进口货物都准备好了。有什么想法吗?

您需要对
myClass
对象进行方法调用,而不是字符串。字符串不会被执行,它不是代码,只是单词

statement.executeUpdate("INSERT INTO my_table VALUES(" + myClass.getValue() + ", 'abcd',now())");
由于缺少“”,get调用被解释为字符串。 看一看,它们很容易阅读和使用,你不必与这些问题作斗争

准备好的语句版本(也更安全,因为它们是):


这就是您试图执行的SQL

INSERT INTO my_table VALUES(myClass.getValue(), 'abcd',now())

您需要将有效的SQL传递给方法才能运行。Java不会在字符串中插入变量和方法调用。您必须将它们的值连接到传递给
executeUpdate
的SQL字符串中,或者改用。

我将向您展示如何使用准备好的语句,因为r答案没有告诉您:

PreparedStatement prepStmt = con.prepareStatement("INSERT INTO my_table VALUES( ? , 'abcd',now())"));
prepStmt.setString(1, myClass.getValue());
prepStmt.executeUpdate();
请注意
。它将被对
myClass.getValue()
的Java调用所取代


请不要连接SQL字符串。

使用
PreparedStatement
并使用
set
方法。请敦促OP使用PreparedStatement以避免SQL注入!非常感谢。这很有帮助
INSERT INTO my_table VALUES(myClass.getValue(), 'abcd',now())
PreparedStatement prepStmt = con.prepareStatement("INSERT INTO my_table VALUES( ? , 'abcd',now())"));
prepStmt.setString(1, myClass.getValue());
prepStmt.executeUpdate();