2014-10-12 319 views
-2

我想將兩個值保存爲一個數據庫,我該怎麼做?在數據庫中將兩個值保存爲一個數據庫(SQL)

這裏是我的代碼:

 try{ 
       String v = "Voila"; 
       String c = "Magic"; 
       String url = "jdbc:mysql://localhost:3306/lemon"; 
       Connection conn = DriverManager.getConnection(url,"r","s"); 
       Statement st = conn.createStatement(); 
       st.executeUpdate("INSERT INTO rtype set RType = '" + v + "'"); // how can I add 'c' in the same column? 
       conn.close();   


      } 
      catch (Exception e) { 
       System.err.println("Got an exception! "); 
       JOptionPane.showMessageDialog(null,"Please enter some values"); 
       System.err.println(e.getMessage()); 
      } 

正如你所看到的,我有兩個字符串,我應該作爲一個然後保存在數據庫結合起來。

如果成功,該列應該有「Voila Magic」。

回答

4

只需將它們連接起來的Java水平插入前:

st.executeUpdate("INSERT INTO rtype set RType = '" + v + " " + c + "'"); 
// Here ----------------------------------------------^^^^^^^^^^ 

如果任vc來自最終用戶,要小心你的代碼是wide open to SQL injection attacks;這裏是他們的幽默,但嚴重,插圖:

enter image description here

即使他們不這樣做,如果有一個可能包含',你的聲明將結束是無效的SQL和失敗。使用PreparedStatement和參數佔位符代替:

PreparedStatement ps = conn.prepareStatement("INSERT INTO rtype set RType = ?"); 
ps.setString(1, v + " " + c); 
ps.executeUpdate(); 
0

與修改嘗試給你的代碼:

try{ 
      String v = "Voila"; 
      String c = "Magic"; 
      String rType = v + " " + c; 
      String url = "jdbc:mysql://localhost:3306/lemon"; 
      Connection conn = DriverManager.getConnection(url,"r","s"); 
      Statement st = conn.createStatement(); 
      st.executeUpdate("INSERT INTO rtype set RType = '" + rType + "'"); // how can I add 'c' in the same column? 
      conn.close();   


     } 
     catch (Exception e) { 
      System.err.println("Got an exception! "); 
      JOptionPane.showMessageDialog(null,"Please enter some values"); 
      System.err.println(e.getMessage()); 
     } 
0

我的建議是使用分離器而使用任何特定的字符如#串聯兩個字符串,^ (空間可能會出現在字符串中更常見,並通過Crowder建議的兩種方法中的任何一種避免空格作爲分隔符)。

因此,您可以拆分從數據庫中取回的值顯示那些2根據您的要求,在2個單獨的字段(可能是2個網頁上的文本字段)中的值。

相關問題