2016-04-21 30 views
-7
public class DB 
{ 
public static void main(.....) 
{ String str="hello"; 
    .... 


st.executeUpdate("insert into r2(col1) values(.....)"); // here r2 is the table in which i want to insert the "str" defined above. 
}} 

我想使用insert命令在表r2中插入'str'。 我在這裏寫什麼?要插入之前定義的「str」的值,如何從外部傳遞參數'str'以便它插入表中?如何在已經在代碼中定義的SQL中插入一個變量

+0

表中哪列? – Sanjeev

+0

錯誤的查詢。列名未給出 –

+1

請閱讀有關預處理語句。 – f1sh

回答

4

你會寫這樣的..表R2假設列名是COL1

public class DB 
{ 
    public static void main(.....) 
    { String str="hello"; 
     .... // Obtain DB Connection here 
     PreparedStatement ps = connection.prepareStatement("insert into r2(col1) values(?)"; 
     ps.setString(1,str); 
     ps.execute(); 

    } 
} 
0

最安全的方法是使用準備好的語句。

這是Oracle's very comprehensive tutorial on using Prepared Statements

在你的情況(假設你想將該值插入到被命名爲「世界」欄目),它會做這樣的事:

String str="hello"; 

Connection connection = [...] // Set up connection 

String queryString = "insert into r2 ('world') values(?)"; 

Statement statement = connection.prepareStatement(queryString); 
statement.setString(1, str); 
statement.executeUpdate(); 

// Add exception handling, clean-up 

嘗試一下,看看是否有幫助。

0
public class Example { 
    // JDBC driver name and database URL 
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
    static final String DB_URL = "jdbc:mysql://localhost/EMP"; 

    // Database credentials 
    static final String USER = "username"; 
    static final String PASS = "password"; 

    public static void main(String[] args) { 
    Connection conn = null; 
    Statement stmt = null; 
    try{ 
     //STEP 2: Register JDBC driver 
     Class.forName("com.mysql.jdbc.Driver"); 

     //STEP 3: Open a connection 
     System.out.println("Connecting to database..."); 
     conn = DriverManager.getConnection(DB_URL,USER,PASS); 

     //STEP 4: Execute a query 
     System.out.println("Creating statement..."); 
     PreparedStatement ps = conn.prepareStatement("insert into table_name(col1,col2,col3) values(?,?,?)"; 
     ps.setString(1,str); 
     ps.setString(2,str); 
     ps.setString(3,str); 
     ps.execute(); 
     } 
     catch(SQLException e) 
     { 
     e.printStackTrace(); 
     } 
     } 
     } 
相關問題