2014-11-08 2 views
0

У меня есть маленький вопрос к вам, ребята.Java MySQL INSERT (используя PreparedStatement)

Я попытался добавить пользователя в базу данных.

У пользователя есть поле, как: идентификатор, имя, фамилия и т.д.

Метод

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 

Как я могу поместить значения из конструктора User в подготовленныйStmt?

У меня есть конструктор вроде этого:

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, когда вы сделали с ним. Не закрывая его, могут течь ресурсы. –

ответ

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