【问题标题】:Java Derby Database Insert statment error "no input parameters"Java Derby 数据库插入语句错误“无输入参数”
【发布时间】:2017-06-22 23:52:49
【问题描述】:

我已经在网上搜索了几天并尝试自己解决我的问题,但似乎无法解决:

当我尝试在表格中插入“名称”和“来源”时,它总是告诉我“没有输入参数”错误...请查看以下代码:

package easylauncher;

import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class connectDB {
    static Connection c = null;
    PreparedStatement pstmt;
    Statement stmt;

    public connectDB() {
        try {
            String driver = "org.apache.derby.jdbc.EmbeddedDriver";
            Class.forName(driver);
            c = DriverManager.getConnection("jdbc:derby:C:\\Users\\benutzer\\easy");

            String insert = "INSERT into easyl(Name,Source) VALUES (?,?)";

            PreparedStatement statement = c.prepareStatement(insert);

            String NAME = "hallo";
            String SOURCE = "naaa";

            statement.setString(1, NAME);
            statement.setString(2, SOURCE);
            statement.executeUpdate();

            String selectSQL = "SELECT * from easyl";
            PreparedStatement preparedStatement = c.prepareStatement(selectSQL);
            preparedStatement.setInt(1, 1001);
            ResultSet rs = preparedStatement.executeQuery();

            rs.beforeFirst();

            while (rs.next()) {
                String name = rs.getString("Name");

                String source = rs.getString("Source");
                System.out.println(name + source);
            }

            c.close();

        } catch (ClassNotFoundException | SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void close() throws SQLException {
        // TODO Auto-generated method stub
        c.close();
    }
}

错误:

java.sql.SQLException: No input parameters.
    at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedResultSet.noStateChangeException(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedPreparedStatement.setInt(Unknown Source)
    at easylauncher.connectDB.<init>(connectDB.java:59)
    at easylauncher.easylauncher$1.actionPerformed(easylauncher.java:148)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6525)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6290)
    at java.awt.Container.processEvent(Container.java:2234)
    at java.awt.Component.dispatchEventImpl(Component.java:4881)
    at java.awt.Container.dispatchEventImpl(Container.java:2292)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
    at java.awt.Container.dispatchEventImpl(Container.java:2278)
    at java.awt.Window.dispatchEventImpl(Window.java:2739)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:719)
    at java.awt.EventQueue$4.run(EventQueue.java:717)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: ERROR 07009: No input parameters.
    at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    at org.apache.derby.impl.sql.GenericParameterValueSet.checkPosition(Unknown Source)
    at org.apache.derby.impl.sql.GenericParameterValueSet.getParameterForSet(Unknown Source)
    ... 39 more

【问题讨论】:

  • 编辑帖子并添加查询语句以及错误日志

标签: java database input parameters derby


【解决方案1】:

错误与这条sql有关

String selectSQL = "SELECT * from easyl";
PreparedStatement preparedStatement = c.prepareStatement(selectSQL);
preparedStatement.setInt(1,1001);

如您所见,没有查询参数或where 子句

如果你想要all 行,那么只需删除

preparedStatement.setInt(1,1001);

【讨论】:

  • 感谢您的及时回复:) ...是的,因为我想显示表格的所有行(条目)...我应该如何继续?
  • 非常感谢!现在它只是一个问题,我如何覆盖表格中的第一行以及第二和第三等等?为了解释,我编写了一个小程序,其中 10 个用于 Windows 程序名称的 jtextfields 和 10 个带有 Windows 程序源的 jtextfields 以便运行程序它只是一个小程序,它可以帮助您通过一个按钮运行多个程序。 ..如果用户将程序添加到字段并单击运行程序会保存字段,并且下次启动程序时它将加载字段但是如果我想覆盖第一行怎么办?
  • 不知道你的桌子是什么样子我不知道。但通常你会根据id 或其他一些唯一标识符发出update sql。
猜你喜欢
  • 2019-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多