2014-11-08 58 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