将数据插入数据库

时间:2012-08-26 09:24:59

标签: java jsp java-ee servlets

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

我的代码如下:

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

1 个答案:

答案 0 :(得分: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();