如何使用 table 名称作为变量将数据插入到 sqlite 数据库中

How to insert data to a sqlite database with table name as variable

我想将数据插入到我的 sqlite 数据库中,但使用一个变量作为 table 应该输入数据的名称。

try {

            Random rand = new Random();
            uniqueID = rand.nextInt(9998) + 1; //Generates a random number from 1 - 9999 inclusively
            String dateStart = day1.getText() + "/" + month1.getText() + "/" + year1.getText();
            String dateEnd = day2.getText() + "/" + month2.getText() + "/" + year2.getText();
            String projectN = projectName.getText();
            String addr = address.getText();
            //String engineerN = engineerName.getText();
            //String engineerP = engineerPassword.getText();

            Class.forName("org.sqlite.JDBC");
            conn2.setAutoCommit(false);


            PreparedStatement ps = conn2.prepareStatement("insert into "My table name" (uniqueid,name,address,startingdate,estcompletion) values(?,?,?,?,?,?)");
            ps.setInt(1, uniqueID);
            ps.setString(2, projectN);
            ps.setString(3, addr);
            ps.setString(4, dateStart);
            ps.setString(5, dateEnd);
            //ps.setString(6, engineerN);

            ps.execute();

            ps.close();
            conn2.commit();
            conn2.close();
           } 
    catch ( Exception e1) {
             System.err.println( e1.getClass().getName() + ": " + e1.getMessage() );
             System.exit(0);
           }
        }
    }
public String JJI() {
    return projectName.getText();

}
}
准备好的语句中的

"My table name" 是我想放置从 projectName.getText() 获取的 table 名称的地方;在末尾。用户在另一个class中输入projectname.getText。 感谢您的帮助!

  1. 将您的 table 名称存储在字符串变量中(您喜欢):String tableName = "users";

  2. 创建一个包含您的 SQL 查询的查询变量:

String query = "insert into '" + tableName + "' (uniqueid,name,address,startingdate,estcompletion) values(?,?,?,?,?,?)";

  1. 如果您想插入变量,请替换“?”使用您在代码中所做的变量名称:

    ps.setInt(1, uniqueID); ps.setString(2, projectN); ps.setString(3, addr); ps.setString(4, dateStart); ps.setString(5, dateEnd);

  2. 执行查询:

PreparedStatement ps = conn2.prepareStatement(query); ps.execute();