2011-06-28 10 views
-1

サーブレットを初めて使用しているので、私の無知を許してください。 DB内のテーブルに値を挿入するクラスを開発しました。サーブレットでInsertValueメソッドを使用したいので、フォームに入力された値が直接テーブルに挿入されます。サーブレットを使用してデータベースに値を追加する

public class InsetValue { 
{ 

try { 
    Statement stmt; 
    Connectionx cx = new Connectionx(); 
    Connection con= cx.Connexion("com.mysql.jdbc.Driver","jdbc:mysql://localhost/jiradb4.3","root","root");   
    stmt = (Statement) con.createStatement(); 

    int ID = 10200; 
    String s = new String("PAYROLL"); 
    String url = new String(""); 
    String lead = new String ("amira.jouida"); 
    String desc = new String ("projet payroll"); 
    String key = new String ("PROLL"); 
    int pcount = 0; 
    int asstype = 2; 
    int avatar = 10011; 

    stmt.executeUpdate("INSERT INTO project " +" VALUES ('"+ ID +"','"+ s +"','"+ url +"','"+ lead +"','"+ desc +"','"+ key +"','"+ pcount +"','"+ asstype +"','"+ avatar +"');"); 
    stmt.close(); 

    System.out.println ("Done"); 
     } 
     catch (SQLException ex) { 

      }  

    } 
} 

これは私のために完璧に動作します:何とかそれは助け、場合

は、ここInsertValueメソッドのコードです。私はservletsについていくつかの文書を赤くしていますが、私はまだこの問題をどう扱うべきか疑問に思っています。

ありがとうございました。 よろしくお願いします。

+0

このコードはひどいです。しかし、Stackoverflowはコードレビューサイトではありません。代わりにhttp://codereview.stackexchange.comを試してください。あるいは、あなたがこれに直面している技術的な問題について強く建設的な質問を立てようとすると、誰かがボーナスの答えとしてこのようなことが本当にどのように正しく行われるべきかについてのヒントを与えるでしょう。 – BalusC

答えて

0

Connectionxとは?

Webアプリケーションを開発してWebサーバーにデプロイする場合は、サーバーによって提供される接続プーリングを使用する必要があります。

3

コードにSQL Injectionがあります。 Preparedステートメントを使用する必要があります。

1

サーブレットは、 'doGet'と 'doPost'の機能を提供します。

両方にパラメータ 'request'と 'response'があります。

ブラウザでサーブレットを呼び出すと、「doGet」が呼び出されます。ページを作成するには、レスポンスにHTMLコードを記述します。

response.getWriter().print(SOME HTML); 

このページには、フィールド(例:「鉛」)を含むフォームが含まれている必要があります。フォームのサブミットボタンは、サーブレットを再度呼び出すことができます。 submitメソッドがPOSTの場合、 'doPost'が呼び出されます。

あなたはフィールド名で、フォームの値を取得することができます:

String lead = request.getParameter("lead"); 

そして今、あなたのが...基本的なものを文を作成し、実行する準備が整いました!

関連する問題