Sqlite 数据将错误输入 table 名称作为来自另一个 class 的变量

Sqlite data enter error into table name as variable from another class

我正在尝试将数据输入 table。 table 名称是取自另一个 class 的变量。我正在使用 getter 方法来这样做。

在我的第一个 class 中,我设置了:

public String getprojectname() {
    return projectname.getText();

}

在我的第二个 class 这是我的代码:

btnDone.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            enterproject1 obj1 = new enterproject1();
            String   pn = obj1.getprojectname();
            Connection conni = null;

            try {
                Class.forName("org.sqlite.JDBC");
                  conni  = DriverManager.getConnection("jdbc:sqlite://C://Users//Asus//Dropbox//Admin.sqlite");
                  String query= "insert into " + obj1.getprojectname() + " (engname,engpass,startingdate,estdate) values(?,?,?,?)";
                  PreparedStatement pst= conni.prepareStatement(query);

                  pst.setString(1, engineername.getText());
                  pst.setString(2, engpass.getText());
                  pst.setString(3, startingdate.getText());
                  pst.setString(4, estdatee.getText());
                  pst.execute();
                  JOptionPane.showMessageDialog(null, "Data Saved!");

                  System.out.println(pst.toString());

                  pst.close();

                } catch ( Exception e ) {
                  System.err.println( e.getClass().getName() + ": " + e.getMessage() );

                  System.exit(0);
                }

我正在尝试从文本字段和另一个 class 调用值。这是这个例外的原因吗?

java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "(": syntax error)

您正在做:

 enterproject1 obj1 = new enterproject1();
 String   pn = obj1.getprojectname();

然后

String query= "insert into " + obj1.getprojectname() + " (engname,engpass,startingdate,estdate) values(?,?,?,?)";

obj1.getprojectname();中有什么?我想这可能是“”。因此,您没有在插入中指定 table 名称。这就是语法错误的原因。

编辑:

您正在创建一个新实例:new enterproject();您能带来那个class的构造函数吗?。您确定projectname有数据吗?