-4

私はオンライン試験システムでプロジェクトを作成しています。これですべてが正常に機能していますが、1 つの問題に直面しています。ユーザーはまずユーザー名、パスワード、電話番号などを入力してアカウントを作成します。その後、データがデータベースに挿入され、試験が開始されます。正常に動作しています。しかし、ユーザーが試験を完了したら、ユーザー名を使用してマークをデータベースに追加したいと考えています。そのために、データベースに 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 に答える