2013-07-15 47 views
1

我使用java方法試圖通過創建表tm7(name varchar(20))來實現將servlet寫入數據庫;但代碼以某種方式不通過tomcat插入數據庫。任何專家都可以保存這個?謝謝!! (抱歉還挺新本)寫入數據庫tomcat

my tomcat writeservlet file 

public void doPost(HttpServletRequest req, HttpServletResponse resp) 
     throws ServletException, IOException { 

    BufferedReader reader = new BufferedReader(new InputStreamReader(
      req.getInputStream())); 
    String names; 

    while ((names = reader.readLine()) != null) // read from mobile device 
    { 
     Statement stmt; 
     String sgd = names; 
     String name = sgd.toString(); 

     try { 
      stmt = con.createStatement(); 
      stmt.executeUpdate("INSERT INTO tm7 VALUES ('" + name 
        + "') "); 
     } catch (Exception e) { 
     } 

     System.out.println(name); 
    } 

    PrintWriter out = resp.getWriter(); 
    out.println(" server received"); 
} 

}

我主要的Android的Java

private class NetworkTask2 extends AsyncTask<String, Void, String>{ 
    String line=""; 
    protected String doInBackground(String... params) { 
     String address=params[0]; 
     try{ 
     URL url = new URL(address); 
     HttpURLConnection con = (HttpURLConnection)url.openConnection(); 
     con.setRequestMethod("POST"); 
     OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream()); 
     out.write(one.getText().toString());//get converted value 
     //out.write(two.getText().toString());//get converted value 
     out.flush(); 
     out.close(); 

     BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream())); 
     line=br.readLine();// read back response from server 
     } 
    catch(IOException e){Log.e("error", "mm", e); } 

     return line; 
    } 
    protected void onPostExecute(String result) { 
     one.setText(result); 
     //two.setText(result); 
    } 
} 
+0

hmmm所以你沒有在客戶端寫任何線,並期望在服務器端獲得一個? – Selvin

+0

我使用sharedpreference和在客戶端使用字符串名稱 –

回答

1

我想建議發現問題是在服務器或客戶端。非常容易這兩種情況:

從Android中的調試器開始,看看是否被調用。 從調試器開始,使用服務器端應用程序,並檢查是否在doPost方法中調用了所謂的流程。

修復錯誤並完成。

 try { 
     stmt = con.createStatement(); 
     stmt.executeUpdate("INSERT INTO tm7 VALUES ('" + name 
       + "') "); 

    // add this lines: 
    con.flush(); 
    con.close(); 

    } catch (Exception e) {   
     e.printStacktace() // at least 
    } 
+0

出於某種原因,我不能添加con.flush()而不是((PrintWriter)con).flush();但是這個錯誤打開文件:logcat中沒有這樣的文件或目錄(2) –

+0

@dawfawf在服務器端某處打開與數據庫的連接。我不確定爲什麼不在doPost()方法中, - 可能是因爲您使用的是複製粘貼代碼,現在想知道爲什麼不能正常工作 - 但應該使用autoflush連接或不連接。確保Java將語句發送到mysql或任何數據庫(做日誌) – 2013-07-15 14:41:14

+0

yup我做了一個日誌Intent log = new Intent(LogActivity.this,MainForm.class); (「pass1」,two.getText()。toString()); \t \t \t log.putExtra(「pass2」,one.getText()。toString()); –