2014-11-08 61 views
0

我有一個小問題給你們。Java MySQL INSERT(使用PreparedStatement)

我試着將用戶添加到數據庫。

用戶有場這樣的:ID,姓名,姓氏等

方法

public static String insertUsertoDatabase(Connection con, User userToAdd) 

做這樣的事情

// the mysql insert statement 
     String query = " insert into User (id,log,pass)" 
       + " values (?, ?, ?)"; 

     // create the mysql insert preparedstatement 
     PreparedStatement preparedStmt = con.prepareStatement(query); 
     preparedStmt.setInt(1, 1); 
     preparedStmt.setString(2, "h"); 
     preparedStmt.setString(3, "l"); 

SETUSER方法

public String setUser(User userToBase) { 
    return insertUsertoDatabase(con, userToBase); 
} 

和主。 java

User us1 = new User("9", "h", "l"); 
db.setUser(us1); //insert to database User u1 

如何將用戶構造函數的值賦給prepareStmt?

我有一個這樣的構造:

public class User(id, login, pass) { 
     this.id = id; 
     etc. 

}

,但我想知道我怎麼可以從構造函數發送數據

User us1 = new User("9", "h", "l"); 

我的方法

public static String insertUsertoDatabase(Connection con, User userToAdd) 



    preparedStmt.setInt(1, 9);   <------------- from User constructor 
    preparedStmt.setString(2, "h"); 
    preparedStmt.setString(3, "l"); 
+0

關閉所有的PreparedStatement當你用它做。不關閉它可能會泄漏資源。 – 2014-11-08 17:42:05

回答

0

你可能需要類似的東西:

// TODO: use meaningful names 
private String pim; 
private String pam; 
private String poom; 

public User(String pim, String pam, String poom) { 
    this.pim = pim; 
    this.pam = pam; 
    this.poom = poom; 
} 

public String getPim() { 
    return this.pim; 
} 

// ... 

然後:

User usr1 = new User("9", "h", "l"); 
usr1.getPim() // = "9" 
// ... 

一些閱讀上constructors