Sqlite数据将错误输入表名作为另一个类的变量

时间:2015-05-14 12:22:15

标签: java sqlite jdbc

我试图将数据输入表格。表名是从另一个类中获取的变量。我正在使用getter方法。

在我的第一堂课中,我设置了:

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

}

在我的第二堂课中,这是我的代码:

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);
                }

我试图从文本字段和其他类调用该值。这是这个例外的原因吗?

  

java.sql.SQLException:[SQLITE_ERROR] SQL错误或缺少数据库(接近"(":语法错误)

1 个答案:

答案 0 :(得分:0)

你在做:

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

然后

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

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

编辑:

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