我正在制作一个在线考试系统的项目。一切都在这方面正常,但我面临一个问题。用户首先通过输入用户名,密码,电话等来创建帐户。然后将数据插入数据库并开始检查。它运作正常。但是当用户完成考试时,我想用用户名将标记添加到数据库中。为此,我在数据库中有一个名为DATA的表。我已经为用户名创建了一个会话,并尝试获取该用户的属性,但我无法将数据添加到数据库中。
我的代码如下:
String str = (String)session.getAttribute("UserName");
String q = "insert into Data (UserName, Marks) values ('"+str+"' , "+count+")";
System.out.println(q);
答案 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();