java - 如何在for循环中执行准备好的语句以从jsp中的表中获取数据?

标签 java mysql jsp jdbc prepared-statement

这段代码有什么问题?我收到此错误。

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'attendance where sub_id='3' and reg_no='1111'' at line 1

代码

try {
    Class.forName("com.mysql.jdbc.Driver");
    Connection con =
            DriverManager.getConnection("jdbc:mysql://localhost:3306/sms", "root", "*****");

    int k;
    String sub = "";
    int t_class[] = new int[counter];
    int att_class[] = new int[counter];
    int tallo_class[] = new int[counter];

    PreparedStatement ps3;
    PreparedStatement ps4;
    PreparedStatement ps5;

    for (k = 0; k < (counter - 1); k++) {

        sub = subjects_id[k];

        //START : getting total no of classes held 
        ps3 = con.prepareStatement("SELECT COUNT(*) FORM attendance where sub_id=? and reg_no=?");

        ps3.setString(1, sub);
        ps3.setString(2, reg_no);

        ResultSet rs3 = ps3.executeQuery();

        rs3.next();
        t_class[k] = rs3.getInt(1);
    }
}

最佳答案

所以一个重要的提示是您想要在循环之外准备您的语句。这就是准备它的要点(另外,参数化输入)。您可以重复使用该语句,然后如上所述,您拼错了单词 FROM

PreparedStatement statement = con.prepareStatement("SELECT COUNT(*) FROM attendance where sub_id=? and reg_no=?");
        for (int i = 0; i < (k - 1); i++) {
            statement.setString(1, sub);
            statement.setString(2, reg_no);
            ResultSet rs3 = ps3.executeQuery();
            rs3.next();
            t_class[k] = rs3.getInt(1);
        }

关于java - 如何在for循环中执行准备好的语句以从jsp中的表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52010034/

相关文章:

java - 关于Java多态性应用于Calendar和GregoriaCalendar案例的一些疑问

java - 如何使用 Maven 组织 Hadoop 的生成 jar

mysql - 3 关系数据库应该如何看待以及如何使用 Laravel Eloquent 创建查询?

mysql - 在mysql中选择float和decimal

php - 我尝试在 SQL 中进行 INSERT WHERE,但它给了我一个错误

java - getServletContext 空指针异常

java - 根据移动和桌面浏览器切换布局

java - 给定四个坐标检查它是否形成一个正方形

java - 如何借助Session从Servlet通过Bean向JSP页面传递参数?

java - 播放解码的 Speex 数据时,我听到的都是静态的