繁体   English   中英

将静态ArrayList中的数据插入到MySQL数据库中的表中

[英]Insert data from static ArrayList into table in mySql database

预先感谢您的任何建议。 我有一个ArrayList并尝试向mysql数据库输入数据。 我得到的错误是: com.mysql.jdbc.MysqlDataTruncation:数据截断:第1行的列'Id'的数据太长了,我检查了item.id,最多2个字符,表中的ID = varchar(3)。 我还附上了截屏,以显示表格中元素的大小。 当我将ArrayList的值分配给表时,我确实怀疑循环中的代码中有一些错误。 确实,我认为这在下面给出的类的代码的这一部分中有些错误。

for(Contact item : pDir){
            s.execute("INSERT INTO pDB.Phone_D (Id, First_Name, 
                    Last_Name, Phone_Number) values ('item.id', 'item.firstName', 'item.lastName', 
                    'item.phoneNumber') ");
        }
</pre> </code>


<pre> <code>
public class Contact {


private static ArrayList<Contact> pDir;
private  String id, firstName, lastName, phoneNumber;
String dataSourceName = "pDB";
String dbURL = "jdbc:mysql://localhost:3306/" + dataSourceName;
String result = "";
Connection con = null;
Statement s;

static{
pDirectory = new ArrayList<Contact>();
    Contact c0 = new Contact("1","Maaaaaa","Madreth","111-000-1998");
    Contact c1 = new Contact("2","Dara","Gurde","020-000-1996");
    Contact c2 = new Contact("3","Maaaaaa","Kvalskrooeee","100-111-1998");
    pDir.add(c0);
    pDir.add(c1);
    pDir.add(c2);   
}

public Contact() {
    for(Contact item : pDir) {
         System.out.println(item.id + " " + item.firstName + " " + item.lastName + " " +  
                 item.phoneNumber);
    }
}

public Contact(String id, String firstName, String lastName, String phoneNumber) {  
    this.id =id;
    this.firstName = firstName; 
    this.lastName = lastName; 
    this.phoneNumber = phoneNumber;
}

public String getFirstName() { return firstName;}
public void setFirstName(String firstName) { this.firstName = firstName;}
public String getLastName() { return lastName; }
public void setLastName(String lastName) { this.lastName = lastName; }
public String getId() { return id;}
public void setId(String id) {this.id = id;}
    public String getPhoneNumber() { return phoneNumber;}
    public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber;}

public Response getLocationDetails(         
    try {
        try{
        Class.forName("com.mysql.jdbc.Driver");
        con = (Connection) DriverManager.getConnection(dbURL,"root","password");
        System.out.println("We are connected to database");
        }
        catch(Exception e) {
        System.out.println("Can not connect to database");
        e.printStackTrace();
        }

                s = (Statement) con.createStatement();
        for(Contact item : pDir){
            s.execute("INSERT INTO pDB.Phone_D (Id, First_Name, 
                    Last_Name, Phone_Number) values ('item.id', 'item.firstName', 'item.lastName', 
                    'item.phoneNumber') ");
        }
         }
}

表格Phone_D的屏幕截图

在此处输入图片说明

INSERT查询(和其他值) '"+item.id+"' 'item.id'更改为'"+item.id+"'
此外,我建议您改用PreparedStatement

暂无
暂无

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

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