2012-01-05 7 views
1

フォームは、顧客から情報を取得するために使用されます。 このフォームには複数のフィールドがあります。 複数のフィールドのデータを1つの列に保存する必要があります。 残りは別のテーブルに保存する必要がありました。最初のテーブルのcustomer_idから2番目のテーブルにcustomer_idを取得するにはどうすればよいですか?

以下は、私が同じテーブルから2つのテーブルにデータを設定するにはどうすればよい

package web.servlets; 

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import com.ead.DBConnect; 

/** 
* Servlet implementation class New 
*/ 
public class CustomerReg extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public CustomerReg() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 


    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 
     String name = request.getParameter("name"); 
     String email = request.getParameter("email"); 
     //String Password = request.getParameter("Password"); 
     String addressno = request.getParameter("addressno"); 
     String city = request.getParameter("city"); 
     String country = request.getParameter("country"); 
     String postalcode = request.getParameter("postalcode"); 
     String telnum = request.getParameter("telnum"); 

     DBConnect dbconnect = new DBConnect(); 
     dbconnect.update("INSERT INTO customer (customer_name, email, address_no, city, country, postal_code) VALUES('"+name+"','"+email+"','"+addressno+"', '"+city+"','"+country+"','"+postalcode+"')"); 
     int[] id = dbconnect.selectInt("Select LAST_INSERTID()", "customer_id"); 
     dbconnect.update("INSERT INTO customer_tel (customer_id, tel_no) VALUES('+id+', '"+telnum+"')"); 

    } 

} 

を使用していますコードのですか?

+0

私はあなたがあなたの質問を明確にする必要があると思います。あなたは同じステートメントの2つのテーブルに挿入することを意味しますか?ただし、同じトランザクションで2つのテーブルに挿入することはできません。また、パラメータ –

答えて

0

と思う。customer_idであり、のテーブルCUSTOMERであると思う。テーブルCUSTOMERTRIGGERを作成して、そのテーブルにレコードを挿入するたびに自動的にそのテーブルを作成することをお勧めします。customer_idcustomer_telのテーブルに挿入されます。

このリンクは、トリガーを作成する上でご案内します。Mysql Trigger After Insert

+0

でプリペアドステートメントを使用してください。インクリメントされたpk値は、実行されたステートメントからも読み込み可能です(apiまたはgoogleを読んで、すぐに投稿するスニペットはありません)。両方のインサートを同じトランザクションで実行する必要があります。実際にこの目的のためにトリガーを使用したくない場合です。 –

+0

htmlページには、名前、住所、bla bla bla、telphone numのような顧客の情報を取り込むフォームがあります。詳細は、電話番号以外の単一のテーブルに挿入されます。電話番号が挿入されます別のテーブル...私はそれを行う方法を知る必要があります。 – ksnt

関連する問題