-4

我正在做一个在线考试系统的项目。一切正常,但我面临一个问题。用户首先通过输入用户名、密码、电话等创建帐户。然后将数据插入数据库并开始考试。它工作正常。但是当用户完成考试时,我想用用户名将分数添加到数据库中。为此,我在数据库中有一个名为 DATA 的表。我已经为用户名创建了一个会话并尝试获取该用户名的属性,但我无法将数据添加到数据库中。

我的代码如下:

String str = (String)session.getAttribute("UserName");
String q = "insert into Data (UserName, Marks) values ('"+str+"' , "+count+")";
System.out.println(q);
4

1 回答 1

4

尝试将其添加到您的代码中,但在此之前了解JDBC

Connection con = null;
String url = "jdbc:mysql://localhost:3306/";
String db = "jdbctutorial";
String driver = "com.mysql.jdbc.Driver";
try {
    Class.forName(driver);
    con = DriverManager.getConnection(url + db, "root", "root");
    try {
        String str = (String)session.getAttribute("UserName");
        String q =
            "insert into Data (UserName, Marks) values ('" + str +
            "' , " + count + ")";
        Statement st = con.createStatement();
        int val = st.executeUpdate(q);
        System.out.println("Marks added.");
    } catch (SQLException s) {
        System.out.println("SQL statement is not executed!");
    }

}

您还可以使用PreparedStatement哪个比 更安全Statement,性能也更好。

  String sql = "INSERT into Data VALUES(?,?)";
  PreparedStatement prest = con.prepareStatement(sql);
  prest.setString(1, str);
  prest.setInt(2, count);
  ps.executeUpdate();
  System.out.println("Marks added.");
  con.close();
于 2012-08-26T09:36:38.000 回答