简体   繁体   English

Java MySQL INSERT(使用PreparedStatement)

[英]A Java MySQL INSERT(using PreparedStatement)

I have a small question to you guys. 我对你们有一个小问题。

I tryed to add user to database. 我试图将用户添加到数据库。

User have field like: id, name, surname etc. 用户具有以下字段:ID,名称,姓氏等。

Method 方法

public static String insertUsertoDatabase(Connection con, User userToAdd)

doing something like this 做这样的事情

 // 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 method setUser方法

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

and main.java 和main.java

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

How can I put values from User constructor to preparedStmt ? 如何将值从User构造函数添加到prepareStmt?

I have a constructor like that: 我有一个像这样的构造函数:

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

} }

but i want to know how can I send data from constructor 但我想知道如何从构造函数发送数据

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

to my method 按照我的方法

public static String insertUsertoDatabase(Connection con, User userToAdd)



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

You probably need something like that: 您可能需要这样的东西:

// 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;
}

// ...

Then: 然后:

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

Some reading on constructors 关于构造函数的一些阅读

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM